@prisma-idb/idb-client-generator 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +2 -0
- package/.prettierrc +3 -0
- package/.release-it.json +11 -0
- package/README.md +8 -0
- package/dist/bin.js +5 -0
- package/dist/bin.js.map +1 -0
- package/dist/fileCreators/idb-interface/create.js +35 -0
- package/dist/fileCreators/idb-interface/create.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/BaseIDBModelClass.js +72 -0
- package/dist/fileCreators/prisma-idb-client/classes/BaseIDBModelClass.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/PrismaIDBClient.js +75 -0
- package/dist/fileCreators/prisma-idb-client/classes/PrismaIDBClient.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js +44 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js +41 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js +196 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/createMany.js +36 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/createMany.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js +30 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirst.js +25 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirst.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirstOrThrow.js +30 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirstOrThrow.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js +44 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js +66 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findUniqueOrThrow.js +30 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findUniqueOrThrow.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js +117 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyRelations.js +106 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyRelations.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applySelectClause.js +42 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applySelectClause.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js +107 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js +145 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.js +58 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.js +37 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.js +25 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/create.js +49 -0
- package/dist/fileCreators/prisma-idb-client/create.js.map +1 -0
- package/dist/fileCreators/types.js +3 -0
- package/dist/fileCreators/types.js.map +1 -0
- package/dist/fileCreators/utils/create.js +53 -0
- package/dist/fileCreators/utils/create.js.map +1 -0
- package/dist/fileCreators/utils/filters/BigIntFilter.js +108 -0
- package/dist/fileCreators/utils/filters/BigIntFilter.js.map +1 -0
- package/dist/fileCreators/utils/filters/BoolFilter.js +68 -0
- package/dist/fileCreators/utils/filters/BoolFilter.js.map +1 -0
- package/dist/fileCreators/utils/filters/BytesFilter.js +90 -0
- package/dist/fileCreators/utils/filters/BytesFilter.js.map +1 -0
- package/dist/fileCreators/utils/filters/DateTimeFilter.js +122 -0
- package/dist/fileCreators/utils/filters/DateTimeFilter.js.map +1 -0
- package/dist/fileCreators/utils/filters/NumberFilter.js +117 -0
- package/dist/fileCreators/utils/filters/NumberFilter.js.map +1 -0
- package/dist/fileCreators/utils/filters/StringFilter.js +189 -0
- package/dist/fileCreators/utils/filters/StringFilter.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/BooleanHandler.js +42 -0
- package/dist/fileCreators/utils/updateHandlers/BooleanHandler.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/BytesHandler.js +42 -0
- package/dist/fileCreators/utils/updateHandlers/BytesHandler.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/DateTimeHandler.js +42 -0
- package/dist/fileCreators/utils/updateHandlers/DateTimeHandler.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/IntHandler.js +42 -0
- package/dist/fileCreators/utils/updateHandlers/IntHandler.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/ScalarListHandler.js +40 -0
- package/dist/fileCreators/utils/updateHandlers/ScalarListHandler.js.map +1 -0
- package/dist/fileCreators/utils/updateHandlers/StringHandler.js +42 -0
- package/dist/fileCreators/utils/updateHandlers/StringHandler.js.map +1 -0
- package/dist/generator.js +33 -0
- package/dist/generator.js.map +1 -0
- package/dist/helpers/fileWriting.js +39 -0
- package/dist/helpers/fileWriting.js.map +1 -0
- package/dist/helpers/utils.js +66 -0
- package/dist/helpers/utils.js.map +1 -0
- package/eslint.config.mjs +9 -0
- package/package.json +54 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFillDefaultsFunction = addFillDefaultsFunction;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
function addFillDefaultsFunction(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "_fillDefaults",
|
|
8
|
+
isAsync: true,
|
|
9
|
+
scope: ts_morph_1.Scope.Private,
|
|
10
|
+
typeParameters: [{ name: "D", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "create">["data"]` }],
|
|
11
|
+
parameters: [
|
|
12
|
+
{ name: "data", type: "D" },
|
|
13
|
+
{ name: "tx", hasQuestionToken: true, type: "IDBUtils.ReadwriteTransactionType" },
|
|
14
|
+
],
|
|
15
|
+
returnType: `Promise<D>`,
|
|
16
|
+
statements: (writer) => {
|
|
17
|
+
writer.writeLine("if (data === undefined) data = {} as D;");
|
|
18
|
+
model.fields
|
|
19
|
+
.filter(({ kind }) => kind !== "object")
|
|
20
|
+
.filter(({ hasDefaultValue, isRequired }) => hasDefaultValue || !isRequired)
|
|
21
|
+
.forEach((field) => {
|
|
22
|
+
writer.writeLine(`if (data.${field.name} === undefined) `).block(() => {
|
|
23
|
+
if (typeof field.default === "object" && "name" in field.default) {
|
|
24
|
+
if (field.default.name === "uuid(4)") {
|
|
25
|
+
addUuidDefault(writer, field);
|
|
26
|
+
}
|
|
27
|
+
else if (field.default.name === "cuid") {
|
|
28
|
+
addCuidDefault(writer, field);
|
|
29
|
+
}
|
|
30
|
+
else if (field.default.name === "autoincrement") {
|
|
31
|
+
addAutoincrementDefault(writer, model, field);
|
|
32
|
+
}
|
|
33
|
+
else if (field.default.name === "now") {
|
|
34
|
+
addNowDefault(writer, field);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else if (field.default) {
|
|
38
|
+
addDefaultValue(writer, field);
|
|
39
|
+
}
|
|
40
|
+
else if (!field.isRequired) {
|
|
41
|
+
addNullAssignment(writer, field);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
model.fields.forEach((field) => {
|
|
46
|
+
if (field.type === "DateTime") {
|
|
47
|
+
if (field.isList) {
|
|
48
|
+
addDateStringListToDateConverter(writer, field);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
addDateStringToDateConverter(writer, field);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (field.type === "BigInt") {
|
|
55
|
+
if (field.isList) {
|
|
56
|
+
addBigIntListConverter(writer, field);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
addBigIntConverter(writer, field);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (field.isList && field.kind !== "object") {
|
|
63
|
+
addScalarListProcessing(writer, field);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
writer.writeLine(`return data;`);
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function addUuidDefault(writer, field) {
|
|
71
|
+
writer.writeLine(`data.${field.name} = crypto.randomUUID();`);
|
|
72
|
+
}
|
|
73
|
+
function addCuidDefault(writer, field) {
|
|
74
|
+
writer.writeLine(`data.${field.name} = createId();`);
|
|
75
|
+
}
|
|
76
|
+
function addAutoincrementDefault(writer, model, field) {
|
|
77
|
+
writer
|
|
78
|
+
.write(`const transaction = tx ?? this.client._db.transaction(["${model.name}"], "readwrite");`)
|
|
79
|
+
.write(`const store = transaction.objectStore('${model.name}');`)
|
|
80
|
+
.write("const cursor = await store.openCursor(null, 'prev');")
|
|
81
|
+
.write(`data.${field.name} = (cursor ? Number(cursor.key) + 1 : 1);`);
|
|
82
|
+
}
|
|
83
|
+
function addDefaultValue(writer, field) {
|
|
84
|
+
if (field.isList) {
|
|
85
|
+
writer.write(`data.${field.name} = ${JSON.stringify(field.default)};`);
|
|
86
|
+
}
|
|
87
|
+
else if (field.type === "String") {
|
|
88
|
+
writer.write(`data.${field.name} = '${field.default}';`);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
writer.write(`data.${field.name} = ${field.default};`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function addNullAssignment(writer, field) {
|
|
95
|
+
writer.write(`data.${field.name} = null;`);
|
|
96
|
+
}
|
|
97
|
+
function addNowDefault(writer, field) {
|
|
98
|
+
writer.writeLine(`data.${field.name} = new Date();`);
|
|
99
|
+
}
|
|
100
|
+
function addDateStringToDateConverter(writer, field) {
|
|
101
|
+
writer.writeLine(`if (typeof data.${field.name} === 'string')`).block(() => {
|
|
102
|
+
writer.writeLine(`data.${field.name} = new Date(data.${field.name})`);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function addDateStringListToDateConverter(writer, field) {
|
|
106
|
+
writer
|
|
107
|
+
.writeLine(`if (Array.isArray(data.${field.name}))`)
|
|
108
|
+
.block(() => {
|
|
109
|
+
writer.writeLine(`data.${field.name} = data.${field.name}.map((d) => new Date(d));`);
|
|
110
|
+
})
|
|
111
|
+
.writeLine(`else if (typeof data.${field.name} === 'object')`)
|
|
112
|
+
.block(() => {
|
|
113
|
+
writer.writeLine(`data.${field.name} = data.${field.name}.set.map((d) => new Date(d));`);
|
|
114
|
+
})
|
|
115
|
+
.writeLine(`else`)
|
|
116
|
+
.block(() => {
|
|
117
|
+
writer.writeLine(`data.${field.name} = []`);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
function addBigIntConverter(writer, field) {
|
|
121
|
+
writer.writeLine(`if (typeof data.${field.name} === 'number')`).block(() => {
|
|
122
|
+
writer.writeLine(`data.${field.name} = BigInt(data.${field.name})`);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
function addBigIntListConverter(writer, field) {
|
|
126
|
+
writer
|
|
127
|
+
.writeLine(`if (Array.isArray(data.${field.name}))`)
|
|
128
|
+
.block(() => {
|
|
129
|
+
writer.writeLine(`data.${field.name} = data.${field.name}.map((n) => BigInt(n));`);
|
|
130
|
+
})
|
|
131
|
+
.writeLine(`else if (typeof data.${field.name} === 'object')`)
|
|
132
|
+
.block(() => {
|
|
133
|
+
writer.writeLine(`data.${field.name} = data.${field.name}.set.map((n) => BigInt(n));`);
|
|
134
|
+
})
|
|
135
|
+
.writeLine(`else`)
|
|
136
|
+
.block(() => {
|
|
137
|
+
writer.writeLine(`data.${field.name} = []`);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
function addScalarListProcessing(writer, field) {
|
|
141
|
+
writer.writeLine(`if (!Array.isArray(data.${field.name}))`).block(() => {
|
|
142
|
+
writer.writeLine(`data.${field.name} = data.${field.name}?.set ?? [];`);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=_fillDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_fillDefaults.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addGetNeededStoresForCreate = addGetNeededStoresForCreate;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addGetNeededStoresForCreate(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "_getNeededStoresForCreate",
|
|
8
|
+
typeParameters: [{ name: "D", constraint: `Partial<Prisma.Args<Prisma.${model.name}Delegate, "create">['data']>` }],
|
|
9
|
+
parameters: [{ name: "data", type: "D" }],
|
|
10
|
+
returnType: "Set<StoreNames<PrismaIDBSchema>>",
|
|
11
|
+
statements: (writer) => {
|
|
12
|
+
writer
|
|
13
|
+
.writeLine(`const neededStores: Set<StoreNames<PrismaIDBSchema>> = new Set();`)
|
|
14
|
+
.writeLine(`neededStores.add("${model.name}");`);
|
|
15
|
+
processRelationsInData(writer, model);
|
|
16
|
+
writer.writeLine("return neededStores;");
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function processRelationsInData(writer, model) {
|
|
21
|
+
const relationFields = model.fields.filter(({ kind }) => kind === "object");
|
|
22
|
+
relationFields.forEach((field) => {
|
|
23
|
+
writer.writeLine(`if (data.${field.name})`).block(() => {
|
|
24
|
+
writer.writeLine(`neededStores.add('${field.type}')`);
|
|
25
|
+
writer.writeLine(`if (data.${field.name}.create)`).block(() => {
|
|
26
|
+
writer
|
|
27
|
+
.writeLine(`const createData = Array.isArray(data.${field.name}.create) ? data.${field.name}.create : [data.${field.name}.create];`)
|
|
28
|
+
.writeLine(`createData.forEach((record) => `)
|
|
29
|
+
.write(`this.client.${(0, utils_1.toCamelCase)(field.type)}._getNeededStoresForCreate(record)`)
|
|
30
|
+
.write(`.forEach((storeName) => neededStores.add(storeName))`)
|
|
31
|
+
.writeLine(`);`);
|
|
32
|
+
});
|
|
33
|
+
writer.writeLine(`if (data.${field.name}.connectOrCreate)`).block(() => {
|
|
34
|
+
writer
|
|
35
|
+
.writeLine(`IDBUtils.convertToArray(data.${field.name}.connectOrCreate).forEach((record) => `)
|
|
36
|
+
.write(`this.client.${(0, utils_1.toCamelCase)(field.type)}._getNeededStoresForCreate(record.create)`)
|
|
37
|
+
.write(`.forEach((storeName) => neededStores.add(storeName))`)
|
|
38
|
+
.writeLine(`);`);
|
|
39
|
+
});
|
|
40
|
+
if (field.isList) {
|
|
41
|
+
writer.writeLine(`if (data.${field.name}.createMany)`).block(() => {
|
|
42
|
+
writer
|
|
43
|
+
.writeLine(`IDBUtils.convertToArray(data.${field.name}.createMany.data).forEach((record) => `)
|
|
44
|
+
.write(`this.client.${(0, utils_1.toCamelCase)(field.type)}._getNeededStoresForCreate(record)`)
|
|
45
|
+
.write(`.forEach((storeName) => neededStores.add(storeName))`)
|
|
46
|
+
.writeLine(`);`);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const fkField = model.fields.find((fkField) => { var _a; return fkField.name === ((_a = field.relationFromFields) === null || _a === void 0 ? void 0 : _a.at(0)); });
|
|
51
|
+
if (fkField) {
|
|
52
|
+
writer.writeLine(`if (data.${fkField.name} !== undefined)`).block(() => {
|
|
53
|
+
writer.writeLine(`neededStores.add("${field.type}")`);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=_getNeededStoresForCreate.js.map
|
package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_getNeededStoresForCreate.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addGetNeededStoresForFind = addGetNeededStoresForFind;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addGetNeededStoresForFind(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "_getNeededStoresForFind",
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "findMany">` }],
|
|
9
|
+
parameters: [{ name: "query", hasQuestionToken: true, type: "Q" }],
|
|
10
|
+
returnType: "Set<StoreNames<PrismaIDBSchema>>",
|
|
11
|
+
statements: (writer) => {
|
|
12
|
+
writer
|
|
13
|
+
.writeLine(`const neededStores: Set<StoreNames<PrismaIDBSchema>> = new Set();`)
|
|
14
|
+
.writeLine(`neededStores.add("${model.name}");`);
|
|
15
|
+
processRelationsInQuery(writer, model);
|
|
16
|
+
writer.writeLine("return neededStores;");
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function processRelationsInQuery(writer, model) {
|
|
21
|
+
const relationFields = model.fields.filter(({ kind }) => kind === "object");
|
|
22
|
+
relationFields.forEach((field) => {
|
|
23
|
+
writer.writeLine(`if (query?.select?.${field.name} || query?.include?.${field.name})`).block(() => {
|
|
24
|
+
writer
|
|
25
|
+
.writeLine(`neededStores.add("${field.type}");`)
|
|
26
|
+
.writeLine(`if (typeof query.select?.${field.name} === "object")`)
|
|
27
|
+
.block(() => {
|
|
28
|
+
writer.writeLine(`this.client.${(0, utils_1.toCamelCase)(field.type)}._getNeededStoresForFind(query.select.${field.name}).forEach((storeName) => neededStores.add(storeName));`);
|
|
29
|
+
})
|
|
30
|
+
.writeLine(`if (typeof query.include?.${field.name} === "object")`)
|
|
31
|
+
.block(() => {
|
|
32
|
+
writer.writeLine(`this.client.${(0, utils_1.toCamelCase)(field.type)}._getNeededStoresForFind(query.include.${field.name}).forEach((storeName) => neededStores.add(storeName));`);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=_getStoresNeededForFind.js.map
|
package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_getStoresNeededForFind.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.ts"],"names":[],"mappings":";;AAIA,8DAcC;AAjBD,wDAA2D;AAG3D,SAAgB,yBAAyB,CAAC,UAA4B,EAAE,KAAY;IAClF,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,yBAAyB;QAC/B,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACpG,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAClE,UAAU,EAAE,kCAAkC;QAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,mEAAmE,CAAC;iBAC9E,SAAS,CAAC,qBAAqB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;YACnD,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAuB,EAAE,KAAY;IACpE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5E,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,CAAC,SAAS,CAAC,sBAAsB,KAAK,CAAC,IAAI,uBAAuB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAChG,MAAM;iBACH,SAAS,CAAC,qBAAqB,KAAK,CAAC,IAAI,KAAK,CAAC;iBAC/C,SAAS,CAAC,4BAA4B,KAAK,CAAC,IAAI,gBAAgB,CAAC;iBACjE,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CACd,eAAe,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,IAAI,wDAAwD,CAClJ,CAAC;YACJ,CAAC,CAAC;iBACD,SAAS,CAAC,6BAA6B,KAAK,CAAC,IAAI,gBAAgB,CAAC;iBAClE,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CACd,eAAe,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,KAAK,CAAC,IAAI,wDAAwD,CACnJ,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addRemoveNestedCreateDataMethod = addRemoveNestedCreateDataMethod;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
function addRemoveNestedCreateDataMethod(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
scope: ts_morph_1.Scope.Private,
|
|
8
|
+
name: "_removeNestedCreateData",
|
|
9
|
+
typeParameters: [{ name: "D", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "create">["data"]` }],
|
|
10
|
+
parameters: [{ name: "data", type: "D" }],
|
|
11
|
+
returnType: `Prisma.Result<Prisma.${model.name}Delegate, object, "findFirstOrThrow">`,
|
|
12
|
+
statements: (writer) => {
|
|
13
|
+
writer.writeLine(`const recordWithoutNestedCreate = structuredClone(data);`);
|
|
14
|
+
addRelationProcessing(writer, model);
|
|
15
|
+
writer.writeLine(`return recordWithoutNestedCreate as Prisma.Result<Prisma.${model.name}Delegate, object, "findFirstOrThrow">;`);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function addRelationProcessing(writer, model) {
|
|
20
|
+
const relationFields = model.fields.filter(({ kind }) => kind === "object");
|
|
21
|
+
relationFields.forEach((field) => {
|
|
22
|
+
writer.writeLine(`delete recordWithoutNestedCreate.${field.name};`);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=_removeNestedCreateData.js.map
|
package/dist/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_removeNestedCreateData.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.ts"],"names":[],"mappings":";;AAGA,0EAeC;AAlBD,uCAAoE;AAGpE,SAAgB,+BAA+B,CAAC,UAA4B,EAAE,KAAY;IACxF,UAAU,CAAC,SAAS,CAAC;QACnB,KAAK,EAAE,gBAAK,CAAC,OAAO;QACpB,IAAI,EAAE,yBAAyB;QAC/B,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,6BAA6B,EAAE,CAAC;QAC1G,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACzC,UAAU,EAAE,wBAAwB,KAAK,CAAC,IAAI,uCAAuC;QACrF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;YAC7E,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,SAAS,CACd,4DAA4D,KAAK,CAAC,IAAI,wCAAwC,CAC/G,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB,EAAE,KAAY;IAClE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5E,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,CAAC,SAAS,CAAC,oCAAoC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPrismaIDBClientFile = createPrismaIDBClientFile;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
const PrismaIDBClient_1 = require("./classes/PrismaIDBClient");
|
|
6
|
+
const BaseIDBModelClass_1 = require("./classes/BaseIDBModelClass");
|
|
7
|
+
const IDBModelClass_1 = require("./classes/models/IDBModelClass");
|
|
8
|
+
function addImports(file, models) {
|
|
9
|
+
file.addImportDeclaration({
|
|
10
|
+
moduleSpecifier: "idb",
|
|
11
|
+
namedImports: ["openDB"],
|
|
12
|
+
trailingTrivia: (writer) => writer.writeLine("/* eslint-disable @typescript-eslint/no-unused-vars */"),
|
|
13
|
+
});
|
|
14
|
+
file.addImportDeclaration({
|
|
15
|
+
moduleSpecifier: "idb",
|
|
16
|
+
namedImports: ["IDBPDatabase", "IDBPTransaction", "StoreNames"],
|
|
17
|
+
isTypeOnly: true,
|
|
18
|
+
});
|
|
19
|
+
file.addImportDeclaration({ moduleSpecifier: "@prisma/client", namedImports: ["Prisma"], isTypeOnly: true });
|
|
20
|
+
file.addImportDeclaration({ moduleSpecifier: "./idb-utils", namespaceImport: "IDBUtils" });
|
|
21
|
+
file.addImportDeclaration({
|
|
22
|
+
moduleSpecifier: "./idb-interface",
|
|
23
|
+
namedImports: ["PrismaIDBSchema"],
|
|
24
|
+
isTypeOnly: true,
|
|
25
|
+
});
|
|
26
|
+
const cuidFieldExists = models
|
|
27
|
+
.flatMap((model) => model.fields)
|
|
28
|
+
.some((field) => typeof field.default === "object" && "name" in field.default && field.default.name == "cuid");
|
|
29
|
+
if (cuidFieldExists) {
|
|
30
|
+
file.addImportDeclaration({
|
|
31
|
+
moduleSpecifier: "@paralleldrive/cuid2",
|
|
32
|
+
namedImports: ["createId"],
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function addVersionDeclaration(file) {
|
|
37
|
+
file.addVariableStatement({
|
|
38
|
+
declarationKind: ts_morph_1.VariableDeclarationKind.Const,
|
|
39
|
+
declarations: [{ name: "IDB_VERSION", initializer: "1" }],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function createPrismaIDBClientFile(idbClientFile, models) {
|
|
43
|
+
addImports(idbClientFile, models);
|
|
44
|
+
addVersionDeclaration(idbClientFile);
|
|
45
|
+
(0, PrismaIDBClient_1.addClientClass)(idbClientFile, models);
|
|
46
|
+
(0, BaseIDBModelClass_1.addBaseModelClass)(idbClientFile);
|
|
47
|
+
models.forEach((model) => (0, IDBModelClass_1.addIDBModelClass)(idbClientFile, model, models));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/fileCreators/prisma-idb-client/create.ts"],"names":[],"mappings":";;AA6CA,8DAMC;AAlDD,uCAA+D;AAC/D,+DAA2D;AAC3D,mEAAgE;AAChE,kEAAkE;AAGlE,SAAS,UAAU,CAAC,IAAgB,EAAE,MAAwB;IAC5D,IAAI,CAAC,oBAAoB,CAAC;QACxB,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,wDAAwD,CAAC;KACvG,CAAC,CAAC;IACH,IAAI,CAAC,oBAAoB,CAAC;QACxB,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,YAAY,CAAC;QAC/D,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,oBAAoB,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7G,IAAI,CAAC,oBAAoB,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,oBAAoB,CAAC;QACxB,eAAe,EAAE,iBAAiB;QAClC,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM;SAC3B,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;SAChC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACjH,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,oBAAoB,CAAC;YACxB,eAAe,EAAE,sBAAsB;YACvC,YAAY,EAAE,CAAC,UAAU,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAgB;IAC7C,IAAI,CAAC,oBAAoB,CAAC;QACxB,eAAe,EAAE,kCAAuB,CAAC,KAAK;QAC9C,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,yBAAyB,CAAC,aAAyB,EAAE,MAAgC;IACnG,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACrC,IAAA,gCAAc,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,qCAAiB,EAAC,aAAa,CAAC,CAAC;IACjC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gCAAgB,EAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fileCreators/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createUtilsFile = createUtilsFile;
|
|
4
|
+
const BigIntFilter_1 = require("./filters/BigIntFilter");
|
|
5
|
+
const BoolFilter_1 = require("./filters/BoolFilter");
|
|
6
|
+
const BytesFilter_1 = require("./filters/BytesFilter");
|
|
7
|
+
const DateTimeFilter_1 = require("./filters/DateTimeFilter");
|
|
8
|
+
const NumberFilter_1 = require("./filters/NumberFilter");
|
|
9
|
+
const StringFilter_1 = require("./filters/StringFilter");
|
|
10
|
+
const BooleanHandler_1 = require("./updateHandlers/BooleanHandler");
|
|
11
|
+
const BytesHandler_1 = require("./updateHandlers/BytesHandler");
|
|
12
|
+
const DateTimeHandler_1 = require("./updateHandlers/DateTimeHandler");
|
|
13
|
+
const IntHandler_1 = require("./updateHandlers/IntHandler");
|
|
14
|
+
const StringHandler_1 = require("./updateHandlers/StringHandler");
|
|
15
|
+
const ScalarListHandler_1 = require("./updateHandlers/ScalarListHandler");
|
|
16
|
+
function createUtilsFile(idbUtilsFile, models) {
|
|
17
|
+
idbUtilsFile.addImportDeclarations([
|
|
18
|
+
{ moduleSpecifier: "idb", isTypeOnly: true, namedImports: ["IDBPTransaction", "StoreNames"] },
|
|
19
|
+
{ moduleSpecifier: "./idb-interface", isTypeOnly: true, namedImports: ["PrismaIDBSchema"] },
|
|
20
|
+
{ moduleSpecifier: "@prisma/client", isTypeOnly: true, namedImports: ["Prisma"] },
|
|
21
|
+
]);
|
|
22
|
+
idbUtilsFile.addFunction({
|
|
23
|
+
name: "convertToArray",
|
|
24
|
+
typeParameters: [{ name: "T" }],
|
|
25
|
+
parameters: [{ name: "arg", type: "T | T[]" }],
|
|
26
|
+
returnType: "T[]",
|
|
27
|
+
isExported: true,
|
|
28
|
+
statements: (writer) => writer.writeLine("return Array.isArray(arg) ? arg : [arg];"),
|
|
29
|
+
});
|
|
30
|
+
idbUtilsFile.addTypeAlias({
|
|
31
|
+
isExported: true,
|
|
32
|
+
name: "ReadwriteTransactionType",
|
|
33
|
+
type: `IDBPTransaction<PrismaIDBSchema, StoreNames<PrismaIDBSchema>[], "readwrite">;`,
|
|
34
|
+
});
|
|
35
|
+
idbUtilsFile.addTypeAlias({
|
|
36
|
+
isExported: true,
|
|
37
|
+
name: "ReadonlyTransactionType",
|
|
38
|
+
type: `IDBPTransaction<PrismaIDBSchema, StoreNames<PrismaIDBSchema>[], "readonly">;`,
|
|
39
|
+
});
|
|
40
|
+
(0, StringFilter_1.addStringFilter)(idbUtilsFile, models);
|
|
41
|
+
(0, NumberFilter_1.addNumberFilter)(idbUtilsFile, models);
|
|
42
|
+
(0, BigIntFilter_1.addBigIntFilter)(idbUtilsFile, models);
|
|
43
|
+
(0, BoolFilter_1.addBoolFilter)(idbUtilsFile, models);
|
|
44
|
+
(0, BytesFilter_1.addBytesFilter)(idbUtilsFile, models);
|
|
45
|
+
(0, DateTimeFilter_1.addDateTimeFilter)(idbUtilsFile, models);
|
|
46
|
+
(0, StringHandler_1.addStringUpdateHandler)(idbUtilsFile, models);
|
|
47
|
+
(0, BooleanHandler_1.addBooleanUpdateHandler)(idbUtilsFile, models);
|
|
48
|
+
(0, DateTimeHandler_1.addDateTimeUpdateHandler)(idbUtilsFile, models);
|
|
49
|
+
(0, BytesHandler_1.addBytesUpdateHandler)(idbUtilsFile, models);
|
|
50
|
+
(0, IntHandler_1.addIntUpdateHandler)(idbUtilsFile, models);
|
|
51
|
+
(0, ScalarListHandler_1.addScalarListUpdateHandler)(idbUtilsFile, models);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/fileCreators/utils/create.ts"],"names":[],"mappings":";;AAeA,0CAwCC;AArDD,yDAAyD;AACzD,qDAAqD;AACrD,uDAAuD;AACvD,6DAA6D;AAC7D,yDAAyD;AACzD,yDAAyD;AACzD,oEAA0E;AAC1E,gEAAsE;AACtE,sEAA4E;AAC5E,4DAAkE;AAClE,kEAAwE;AACxE,0EAAgF;AAEhF,SAAgB,eAAe,CAAC,YAAwB,EAAE,MAAwB;IAChF,YAAY,CAAC,qBAAqB,CAAC;QACjC,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE;QAC7F,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,iBAAiB,CAAC,EAAE;QAC3F,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE;KAClF,CAAC,CAAC;IAEH,YAAY,CAAC,WAAW,CAAC;QACvB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC/B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,0CAA0C,CAAC;KACrF,CAAC,CAAC;IAEH,YAAY,CAAC,YAAY,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,+EAA+E;KACtF,CAAC,CAAC;IACH,YAAY,CAAC,YAAY,CAAC;QACxB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,8EAA8E;KACrF,CAAC,CAAC;IAEH,IAAA,8BAAe,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,8BAAe,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,8BAAe,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,0BAAa,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpC,IAAA,4BAAc,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrC,IAAA,kCAAiB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAExC,IAAA,sCAAsB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAA,wCAAuB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAA,0CAAwB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAA,oCAAqB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAA,gCAAmB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAA,8CAA0B,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addBigIntFilter = addBigIntFilter;
|
|
4
|
+
function addBigIntFilter(utilsFile, models) {
|
|
5
|
+
const bigIntFields = models.flatMap(({ fields }) => fields).filter((field) => field.type === "BigInt");
|
|
6
|
+
if (bigIntFields.length === 0)
|
|
7
|
+
return;
|
|
8
|
+
const nullableBigIntFieldPresent = bigIntFields.some(({ isRequired }) => !isRequired);
|
|
9
|
+
let filterType = "undefined | number | bigint | Prisma.BigIntFilter<unknown>";
|
|
10
|
+
if (nullableBigIntFieldPresent) {
|
|
11
|
+
filterType += " | null | Prisma.BigIntNullableFilter<unknown>";
|
|
12
|
+
}
|
|
13
|
+
utilsFile.addFunction({
|
|
14
|
+
name: "whereBigIntFilter",
|
|
15
|
+
isExported: true,
|
|
16
|
+
typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
|
|
17
|
+
parameters: [
|
|
18
|
+
{ name: "record", type: `R` },
|
|
19
|
+
{ name: "fieldName", type: "keyof R" },
|
|
20
|
+
{
|
|
21
|
+
name: "bigIntFilter",
|
|
22
|
+
type: filterType,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
returnType: "boolean",
|
|
26
|
+
statements: (writer) => {
|
|
27
|
+
writer
|
|
28
|
+
.writeLine(`if (bigIntFilter === undefined) return true;`)
|
|
29
|
+
.blankLine()
|
|
30
|
+
.writeLine(`const value = record[fieldName] as number | null;`)
|
|
31
|
+
.writeLine(`if (bigIntFilter === null) return value === null;`)
|
|
32
|
+
.blankLine()
|
|
33
|
+
.writeLine(`if (typeof bigIntFilter === 'number' || typeof bigIntFilter === 'bigint')`)
|
|
34
|
+
.block(() => {
|
|
35
|
+
writer.writeLine(`if (value !== bigIntFilter) return false;`);
|
|
36
|
+
})
|
|
37
|
+
.writeLine(`else`)
|
|
38
|
+
.block(() => {
|
|
39
|
+
addEqualsHandler(writer);
|
|
40
|
+
addNotHandler(writer);
|
|
41
|
+
addInHandler(writer);
|
|
42
|
+
addNotInHandler(writer);
|
|
43
|
+
addLtHandler(writer);
|
|
44
|
+
addLteHandler(writer);
|
|
45
|
+
addGtHandler(writer);
|
|
46
|
+
addGteHandler(writer);
|
|
47
|
+
})
|
|
48
|
+
.writeLine(`return true;`);
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function addEqualsHandler(writer) {
|
|
53
|
+
writer
|
|
54
|
+
.writeLine(`if (bigIntFilter.equals === null)`)
|
|
55
|
+
.block(() => {
|
|
56
|
+
writer.writeLine(`if (value !== null) return false;`);
|
|
57
|
+
})
|
|
58
|
+
.writeLine(`if (typeof bigIntFilter.equals === "number" || typeof bigIntFilter.equals === "bigint")`)
|
|
59
|
+
.block(() => {
|
|
60
|
+
writer.writeLine(`if (bigIntFilter.equals != value) return false;`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function addNotHandler(writer) {
|
|
64
|
+
writer
|
|
65
|
+
.writeLine(`if (bigIntFilter.not === null)`)
|
|
66
|
+
.block(() => {
|
|
67
|
+
writer.writeLine(`if (value === null) return false;`);
|
|
68
|
+
})
|
|
69
|
+
.writeLine(`if (typeof bigIntFilter.not === "number" || typeof bigIntFilter.not === "bigint")`)
|
|
70
|
+
.block(() => {
|
|
71
|
+
writer.writeLine(`if (bigIntFilter.not == value) return false;`);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function addInHandler(writer) {
|
|
75
|
+
writer.writeLine(`if (Array.isArray(bigIntFilter.in))`).block(() => {
|
|
76
|
+
writer
|
|
77
|
+
.writeLine(`if (value === null) return false;`)
|
|
78
|
+
.writeLine(`if (!bigIntFilter.in.map((n) => BigInt(n)).includes(BigInt(value))) return false;`);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function addNotInHandler(writer) {
|
|
82
|
+
writer.writeLine(`if (Array.isArray(bigIntFilter.notIn))`).block(() => {
|
|
83
|
+
writer
|
|
84
|
+
.writeLine(`if (value === null) return false;`)
|
|
85
|
+
.writeLine(`if (bigIntFilter.notIn.map((n) => BigInt(n)).includes(BigInt(value))) return false;`);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function addLtHandler(writer) {
|
|
89
|
+
writer.writeLine(`if (typeof bigIntFilter.lt === "number" || typeof bigIntFilter.lt === "bigint")`).block(() => {
|
|
90
|
+
writer.writeLine(`if (value === null) return false;`).writeLine(`if (!(value < bigIntFilter.lt)) return false;`);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function addLteHandler(writer) {
|
|
94
|
+
writer.writeLine(`if (typeof bigIntFilter.lte === "number" || typeof bigIntFilter.lte === "bigint")`).block(() => {
|
|
95
|
+
writer.writeLine(`if (value === null) return false;`).writeLine(`if (!(value <= bigIntFilter.lte)) return false;`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function addGtHandler(writer) {
|
|
99
|
+
writer.writeLine(`if (typeof bigIntFilter.gt === "number" || typeof bigIntFilter.gt === "bigint")`).block(() => {
|
|
100
|
+
writer.writeLine(`if (value === null) return false;`).writeLine(`if (!(value > bigIntFilter.gt)) return false;`);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function addGteHandler(writer) {
|
|
104
|
+
writer.writeLine(`if (typeof bigIntFilter.gte === "number" || typeof bigIntFilter.gte === "bigint")`).block(() => {
|
|
105
|
+
writer.writeLine(`if (value === null) return false;`).writeLine(`if (!(value >= bigIntFilter.gte)) return false;`);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=BigIntFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigIntFilter.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/filters/BigIntFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addBoolFilter = addBoolFilter;
|
|
4
|
+
function addBoolFilter(utilsFile, models) {
|
|
5
|
+
const booleanFields = models.flatMap(({ fields }) => fields).filter((field) => field.type === "Boolean");
|
|
6
|
+
if (booleanFields.length === 0)
|
|
7
|
+
return;
|
|
8
|
+
const nullableBooleanFieldPresent = booleanFields.some(({ isRequired }) => !isRequired);
|
|
9
|
+
let filterType = "undefined | boolean | Prisma.BoolFilter<unknown>";
|
|
10
|
+
if (nullableBooleanFieldPresent) {
|
|
11
|
+
filterType += " | null | Prisma.BoolNullableFilter<unknown>";
|
|
12
|
+
}
|
|
13
|
+
utilsFile.addFunction({
|
|
14
|
+
name: "whereBoolFilter",
|
|
15
|
+
isExported: true,
|
|
16
|
+
typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
|
|
17
|
+
parameters: [
|
|
18
|
+
{ name: "record", type: `R` },
|
|
19
|
+
{ name: "fieldName", type: "keyof R" },
|
|
20
|
+
{
|
|
21
|
+
name: "boolFilter",
|
|
22
|
+
type: filterType,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
returnType: "boolean",
|
|
26
|
+
statements: (writer) => {
|
|
27
|
+
writer
|
|
28
|
+
.writeLine(`if (boolFilter === undefined) return true;`)
|
|
29
|
+
.blankLine()
|
|
30
|
+
.writeLine(`const value = record[fieldName] as boolean | null;`)
|
|
31
|
+
.writeLine(`if (boolFilter === null) return value === null;`)
|
|
32
|
+
.blankLine()
|
|
33
|
+
.writeLine(`if (typeof boolFilter === 'boolean')`)
|
|
34
|
+
.block(() => {
|
|
35
|
+
writer.writeLine(`if (value !== boolFilter) return false;`);
|
|
36
|
+
})
|
|
37
|
+
.writeLine(`else`)
|
|
38
|
+
.block(() => {
|
|
39
|
+
addEqualsHandler(writer);
|
|
40
|
+
addNotHandler(writer);
|
|
41
|
+
})
|
|
42
|
+
.writeLine(`return true;`);
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function addEqualsHandler(writer) {
|
|
47
|
+
writer
|
|
48
|
+
.writeLine(`if (boolFilter.equals === null)`)
|
|
49
|
+
.block(() => {
|
|
50
|
+
writer.writeLine(`if (value !== null) return false;`);
|
|
51
|
+
})
|
|
52
|
+
.writeLine(`if (typeof boolFilter.equals === "boolean")`)
|
|
53
|
+
.block(() => {
|
|
54
|
+
writer.writeLine(`if (boolFilter.equals != value) return false;`);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function addNotHandler(writer) {
|
|
58
|
+
writer
|
|
59
|
+
.writeLine(`if (boolFilter.not === null)`)
|
|
60
|
+
.block(() => {
|
|
61
|
+
writer.writeLine(`if (value === null) return false;`);
|
|
62
|
+
})
|
|
63
|
+
.writeLine(`if (typeof boolFilter.not === "boolean")`)
|
|
64
|
+
.block(() => {
|
|
65
|
+
writer.writeLine(`if (boolFilter.not == value) return false;`);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=BoolFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoolFilter.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/filters/BoolFilter.ts"],"names":[],"mappings":";;AAGA,sCA0CC;AA1CD,SAAgB,aAAa,CAAC,SAAqB,EAAE,MAAwB;IAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACzG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,MAAM,2BAA2B,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACxF,IAAI,UAAU,GAAG,kDAAkD,CAAC;IACpE,IAAI,2BAA2B,EAAE,CAAC;QAChC,UAAU,IAAI,8CAA8C,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,8CAA8C,EAAE,CAAC;QAC1G,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAC7B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,UAAU;aACjB;SACF;QACD,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,4CAA4C,CAAC;iBACvD,SAAS,EAAE;iBACX,SAAS,CAAC,oDAAoD,CAAC;iBAC/D,SAAS,CAAC,iDAAiD,CAAC;iBAC5D,SAAS,EAAE;iBACX,SAAS,CAAC,sCAAsC,CAAC;iBACjD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;YAC9D,CAAC,CAAC;iBACD,SAAS,CAAC,MAAM,CAAC;iBACjB,KAAK,CAAC,GAAG,EAAE;gBACV,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,aAAa,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC;iBACD,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,MAAM;SACH,SAAS,CAAC,iCAAiC,CAAC;SAC5C,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,SAAS,CAAC,6CAA6C,CAAC;SACxD,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM;SACH,SAAS,CAAC,8BAA8B,CAAC;SACzC,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,SAAS,CAAC,0CAA0C,CAAC;SACrD,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACP,CAAC"}
|