43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { Prisma } from "@prisma/client";
|
|
|
|
export const checkUndefinedInValue = (where: any) => {
|
|
if (where) {
|
|
for (const key in where) {
|
|
// INFO: Since this is for $allModels, we don't have a way to get the correct
|
|
// where type
|
|
const whereInput = where[key as any] as any;
|
|
let message;
|
|
if (whereInput === undefined) {
|
|
message = `The value for the field "${key}" cannot be undefined.`;
|
|
throw new Error(message);
|
|
}
|
|
|
|
if (whereInput === null) {
|
|
continue;
|
|
}
|
|
|
|
if (whereInput.hasOwnProperty("in") && typeof whereInput.in === "undefined") {
|
|
message = `The "in" value for the field "${key}" cannot be undefined.`;
|
|
throw new Error(message);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
export function disallowUndefinedDeleteUpdateManyExtension() {
|
|
return Prisma.defineExtension({
|
|
query: {
|
|
$allModels: {
|
|
async deleteMany({ args, query }) {
|
|
checkUndefinedInValue(args.where);
|
|
return query(args);
|
|
},
|
|
async updateMany({ args, query }) {
|
|
checkUndefinedInValue(args.where);
|
|
return query(args);
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|