♻️ refactor: change all id types to uuidv7
This commit is contained in:
4
src/helpers/databases/uuidv7.ts
Normal file
4
src/helpers/databases/uuidv7.ts
Normal file
@ -0,0 +1,4 @@
|
||||
// utils/uuidv7.ts
|
||||
import { uuidv7 } from "uuidv7";
|
||||
|
||||
export const generateUUIDv7 = () => uuidv7();
|
||||
@ -2,6 +2,7 @@ import { PrismaClient } from "@prisma/client";
|
||||
import { PrismaPg } from "@prisma/adapter-pg";
|
||||
import pg from "pg";
|
||||
import dotenv from "dotenv";
|
||||
import { generateUUIDv7 } from "../../../helpers/databases/uuidv7";
|
||||
dotenv.config();
|
||||
|
||||
const pool = new pg.Pool({
|
||||
@ -9,4 +10,26 @@ const pool = new pg.Pool({
|
||||
});
|
||||
|
||||
const adapter = new PrismaPg(pool);
|
||||
export const prisma = new PrismaClient({ adapter });
|
||||
export const prisma = new PrismaClient({ adapter }).$extends({
|
||||
query: {
|
||||
$allModels: {
|
||||
async create({ args, query }) {
|
||||
if (
|
||||
args.data &&
|
||||
typeof args.data === "object" &&
|
||||
!("id" in args.data)
|
||||
) {
|
||||
// do nothing
|
||||
} else if (args.data && !args.data.id) {
|
||||
(args.data as { id?: string }).id = generateUUIDv7();
|
||||
}
|
||||
return query(args);
|
||||
},
|
||||
async upsert({ args, query }) {
|
||||
const create = args.create as any;
|
||||
if (create && !create.id) create.id = generateUUIDv7();
|
||||
return query(args);
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user