@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,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFindFirstMethod = addFindFirstMethod;
|
|
4
|
+
function addFindFirstMethod(modelClass, model) {
|
|
5
|
+
modelClass.addMethod({
|
|
6
|
+
name: "findFirst",
|
|
7
|
+
isAsync: true,
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findFirst'>` }],
|
|
9
|
+
parameters: [
|
|
10
|
+
{ name: "query", hasQuestionToken: true, type: "Q" },
|
|
11
|
+
{
|
|
12
|
+
name: "tx",
|
|
13
|
+
hasQuestionToken: true,
|
|
14
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'findFirst'>>`,
|
|
18
|
+
statements: (writer) => {
|
|
19
|
+
writer
|
|
20
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readonly");`)
|
|
21
|
+
.writeLine(`return (await this.findMany(query))[0] ?? null;`);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=findFirst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findFirst.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findFirst.ts"],"names":[],"mappings":";;AAGA,gDAsBC;AAtBD,SAAgB,kBAAkB,CAAC,UAA4B,EAAE,KAAY;IAC3E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,wBAAwB,EAAE,CAAC;QACrG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACpD;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,sEAAsE;aAC7E;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,4BAA4B;QAClF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CACR,sGAAsG,CACvG;iBACA,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFindFirstOrThrow = addFindFirstOrThrow;
|
|
4
|
+
function addFindFirstOrThrow(modelClass, model) {
|
|
5
|
+
modelClass.addMethod({
|
|
6
|
+
name: "findFirstOrThrow",
|
|
7
|
+
isAsync: true,
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "findFirstOrThrow">` }],
|
|
9
|
+
parameters: [
|
|
10
|
+
{ name: "query", hasQuestionToken: true, type: "Q" },
|
|
11
|
+
{
|
|
12
|
+
name: "tx",
|
|
13
|
+
hasQuestionToken: true,
|
|
14
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, "findFirstOrThrow">>`,
|
|
18
|
+
statements: (writer) => {
|
|
19
|
+
writer
|
|
20
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readonly");`)
|
|
21
|
+
.writeLine(`const record = await this.findFirst(query, tx);`)
|
|
22
|
+
.writeLine(`if (!record)`)
|
|
23
|
+
.block(() => {
|
|
24
|
+
writer.writeLine(`tx.abort();`).writeLine(`throw new Error("Record not found");`);
|
|
25
|
+
})
|
|
26
|
+
.writeLine(`return record;`);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=findFirstOrThrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findFirstOrThrow.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findFirstOrThrow.ts"],"names":[],"mappings":";;AAGA,kDA2BC;AA3BD,SAAgB,mBAAmB,CAAC,UAA4B,EAAE,KAAY;IAC5E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,+BAA+B,EAAE,CAAC;QAC5G,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACpD;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,sEAAsE;aAC7E;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,mCAAmC;QACzF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CACR,sGAAsG,CACvG;iBACA,SAAS,CAAC,iDAAiD,CAAC;iBAC5D,SAAS,CAAC,cAAc,CAAC;iBACzB,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACpF,CAAC,CAAC;iBACD,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFindManyMethod = addFindManyMethod;
|
|
4
|
+
function addFindManyMethod(modelClass, model) {
|
|
5
|
+
modelClass.addMethod({
|
|
6
|
+
name: "findMany",
|
|
7
|
+
isAsync: true,
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findMany'>` }],
|
|
9
|
+
parameters: [
|
|
10
|
+
{ name: "query", hasQuestionToken: true, type: "Q" },
|
|
11
|
+
{
|
|
12
|
+
name: "tx",
|
|
13
|
+
hasQuestionToken: true,
|
|
14
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'findMany'>>`,
|
|
18
|
+
statements: (writer) => {
|
|
19
|
+
getRecords(writer, model);
|
|
20
|
+
applyRelationsToRecords(writer, model);
|
|
21
|
+
applySelectClauseToRecords(writer);
|
|
22
|
+
returnRecords(writer, model);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function getRecords(writer, model) {
|
|
27
|
+
writer
|
|
28
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readonly");`)
|
|
29
|
+
.writeLine(`const records = this._applyWhereClause(await tx.objectStore("${model.name}").getAll(), query?.where);`);
|
|
30
|
+
}
|
|
31
|
+
function applyRelationsToRecords(writer, model) {
|
|
32
|
+
writer
|
|
33
|
+
.write(`const relationAppliedRecords = (await this._applyRelations(records, tx, query)) `)
|
|
34
|
+
.write(`as Prisma.Result<Prisma.${model.name}Delegate, object, 'findFirstOrThrow'>[];`);
|
|
35
|
+
}
|
|
36
|
+
function applySelectClauseToRecords(writer) {
|
|
37
|
+
writer
|
|
38
|
+
.writeLine("const selectClause = query?.select;")
|
|
39
|
+
.writeLine("const selectAppliedRecords = this._applySelectClause(relationAppliedRecords, selectClause);");
|
|
40
|
+
}
|
|
41
|
+
function returnRecords(writer, model) {
|
|
42
|
+
writer.writeLine(`return selectAppliedRecords as Prisma.Result<Prisma.${model.name}Delegate, Q, 'findMany'>;`);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=findMany.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findMany.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findMany.ts"],"names":[],"mappings":";;AAGA,8CAqBC;AArBD,SAAgB,iBAAiB,CAAC,UAA4B,EAAE,KAAY;IAC1E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACpG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACpD;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,sEAAsE;aAC7E;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,2BAA2B;QACjF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1B,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACnC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,MAAuB,EAAE,KAAY;IACvD,MAAM;SACH,SAAS,CAAC,sGAAsG,CAAC;SACjH,SAAS,CAAC,gEAAgE,KAAK,CAAC,IAAI,6BAA6B,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAuB,EAAE,KAAY;IACpE,MAAM;SACH,KAAK,CAAC,kFAAkF,CAAC;SACzF,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAuB;IACzD,MAAM;SACH,SAAS,CAAC,qCAAqC,CAAC;SAChD,SAAS,CAAC,6FAA6F,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB,EAAE,KAAY;IAC1D,MAAM,CAAC,SAAS,CAAC,uDAAuD,KAAK,CAAC,IAAI,2BAA2B,CAAC,CAAC;AACjH,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFindUniqueMethod = addFindUniqueMethod;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addFindUniqueMethod(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "findUnique",
|
|
8
|
+
isAsync: true,
|
|
9
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findUnique'>` }],
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "query", type: "Q" },
|
|
12
|
+
{
|
|
13
|
+
name: "tx",
|
|
14
|
+
hasQuestionToken: true,
|
|
15
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'findUnique'>>`,
|
|
19
|
+
statements: (writer) => {
|
|
20
|
+
writer
|
|
21
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readonly");`)
|
|
22
|
+
.writeLine("let record;");
|
|
23
|
+
getFromKeyIdentifier(writer, model);
|
|
24
|
+
getFromNonKeyIdentifier(writer, model);
|
|
25
|
+
writer
|
|
26
|
+
.writeLine("if (!record) return null;")
|
|
27
|
+
.blankLine()
|
|
28
|
+
.write(`const recordWithRelations = `)
|
|
29
|
+
.write(`this._applySelectClause(await this._applyRelations(this._applyWhereClause([record], query.where), tx, query), query.select)[0];`)
|
|
30
|
+
.writeLine(`return recordWithRelations as Prisma.Result<Prisma.${model.name}Delegate, Q, "findUnique">;`);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function getFromKeyIdentifier(writer, model) {
|
|
35
|
+
const keyUniqueIdentifier = (0, utils_1.getUniqueIdentifiers)(model)[0];
|
|
36
|
+
const fieldNames = JSON.parse(keyUniqueIdentifier.keyPath);
|
|
37
|
+
let fields;
|
|
38
|
+
if (fieldNames.length === 1) {
|
|
39
|
+
fields = JSON.stringify(fieldNames.map((fieldName) => `query.where.${fieldName}`));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
fields = JSON.stringify(fieldNames.map((fieldName) => `query.where.${keyUniqueIdentifier.name}.${fieldName}`));
|
|
43
|
+
}
|
|
44
|
+
fields = fields.replaceAll('"', "");
|
|
45
|
+
writer.writeLine(`if (query.where.${keyUniqueIdentifier.name})`).block(() => {
|
|
46
|
+
writer.writeLine(`record = await tx.objectStore("${model.name}").get(${fields});`);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function getFromNonKeyIdentifier(writer, model) {
|
|
50
|
+
const nonKeyUniqueIdentifiers = (0, utils_1.getUniqueIdentifiers)(model).slice(1);
|
|
51
|
+
nonKeyUniqueIdentifiers.forEach(({ name, keyPath }) => {
|
|
52
|
+
const fieldNames = JSON.parse(keyPath);
|
|
53
|
+
let fields;
|
|
54
|
+
if (fieldNames.length === 1) {
|
|
55
|
+
fields = JSON.stringify(fieldNames.map((fieldName) => `query.where.${fieldName}`));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
fields = JSON.stringify(fieldNames.map((fieldName) => `query.where.${name}.${fieldName}`));
|
|
59
|
+
}
|
|
60
|
+
fields = fields.replaceAll('"', "");
|
|
61
|
+
writer.writeLine(`else if (query.where.${name})`).block(() => {
|
|
62
|
+
writer.writeLine(`record = await tx.objectStore("${model.name}").index("${name}Index").get(${fields});`);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=findUnique.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findUnique.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findUnique.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFindUniqueOrThrow = addFindUniqueOrThrow;
|
|
4
|
+
function addFindUniqueOrThrow(modelClass, model) {
|
|
5
|
+
modelClass.addMethod({
|
|
6
|
+
name: "findUniqueOrThrow",
|
|
7
|
+
isAsync: true,
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "findUniqueOrThrow">` }],
|
|
9
|
+
parameters: [
|
|
10
|
+
{ name: "query", type: "Q" },
|
|
11
|
+
{
|
|
12
|
+
name: "tx",
|
|
13
|
+
hasQuestionToken: true,
|
|
14
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, "findUniqueOrThrow">>`,
|
|
18
|
+
statements: (writer) => {
|
|
19
|
+
writer
|
|
20
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readonly");`)
|
|
21
|
+
.writeLine(`const record = await this.findUnique(query, tx);`)
|
|
22
|
+
.writeLine(`if (!record)`)
|
|
23
|
+
.block(() => {
|
|
24
|
+
writer.writeLine(`tx.abort();`).writeLine(`throw new Error("Record not found");`);
|
|
25
|
+
})
|
|
26
|
+
.writeLine(`return record;`);
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=findUniqueOrThrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findUniqueOrThrow.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findUniqueOrThrow.ts"],"names":[],"mappings":";;AAGA,oDA2BC;AA3BD,SAAgB,oBAAoB,CAAC,UAA4B,EAAE,KAAY;IAC7E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,gCAAgC,EAAE,CAAC;QAC7G,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,sEAAsE;aAC7E;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,oCAAoC;QAC1F,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CACR,sGAAsG,CACvG;iBACA,SAAS,CAAC,kDAAkD,CAAC;iBAC7D,SAAS,CAAC,cAAc,CAAC;iBACzB,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACpF,CAAC,CAAC;iBACD,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addUpdateMethod = addUpdateMethod;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addUpdateMethod(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "update",
|
|
8
|
+
isAsync: true,
|
|
9
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'update'>` }],
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "query", type: "Q" },
|
|
12
|
+
{ name: "tx", hasQuestionToken: true, type: "IDBUtils.ReadwriteTransactionType" },
|
|
13
|
+
],
|
|
14
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'update'>>`,
|
|
15
|
+
statements: (writer) => {
|
|
16
|
+
addGetRecord(writer);
|
|
17
|
+
addStringUpdateHandling(writer, model);
|
|
18
|
+
addDateTimeUpdateHandling(writer, model);
|
|
19
|
+
addBooleanUpdateHandling(writer, model);
|
|
20
|
+
addBytesUpdateHandling(writer, model);
|
|
21
|
+
addIntUpdateHandling(writer, model);
|
|
22
|
+
addScalarListUpdateHandling(writer, model);
|
|
23
|
+
addPutAndReturn(writer, model);
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function addGetRecord(writer) {
|
|
28
|
+
writer
|
|
29
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
|
|
30
|
+
.writeLine(`const record = await this.findUnique({ where: query.where }, tx);`)
|
|
31
|
+
.writeLine(`if (record === null)`)
|
|
32
|
+
.block(() => {
|
|
33
|
+
writer.writeLine(`tx.abort();`).writeLine(`throw new Error("Record not found");`);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function addPutAndReturn(writer, model) {
|
|
37
|
+
const pk = (0, utils_1.getUniqueIdentifiers)(model)[0];
|
|
38
|
+
writer
|
|
39
|
+
.writeLine(`const keyPath = await tx.objectStore("${model.name}").put(record);`)
|
|
40
|
+
.writeLine(`const recordWithRelations = (await this.findUnique(`)
|
|
41
|
+
.block(() => {
|
|
42
|
+
writer.writeLine(`...query, where: { ${JSON.parse(pk.keyPath)[0]}: keyPath[0] },`);
|
|
43
|
+
})
|
|
44
|
+
.writeLine(`, tx))!;`)
|
|
45
|
+
.writeLine(`return recordWithRelations as Prisma.Result<Prisma.${model.name}Delegate, Q, "update">;`);
|
|
46
|
+
}
|
|
47
|
+
function addStringUpdateHandling(writer, model) {
|
|
48
|
+
const stringFields = model.fields.filter((field) => field.type === "String" && !field.isList).map(({ name }) => name);
|
|
49
|
+
if (stringFields.length === 0)
|
|
50
|
+
return;
|
|
51
|
+
writer
|
|
52
|
+
.writeLine(`const stringFields = ${JSON.stringify(stringFields)} as const;`)
|
|
53
|
+
.writeLine(`for (const field of stringFields)`)
|
|
54
|
+
.block(() => {
|
|
55
|
+
writer.writeLine(`IDBUtils.handleStringUpdateField(record, field, query.data[field]);`);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function addIntUpdateHandling(writer, model) {
|
|
59
|
+
const intFields = model.fields.filter((field) => field.type === "Int" && !field.isList).map(({ name }) => name);
|
|
60
|
+
if (intFields.length === 0)
|
|
61
|
+
return;
|
|
62
|
+
writer
|
|
63
|
+
.writeLine(`const intFields = ${JSON.stringify(intFields)} as const;`)
|
|
64
|
+
.writeLine(`for (const field of intFields)`)
|
|
65
|
+
.block(() => {
|
|
66
|
+
writer.writeLine(`IDBUtils.handleIntUpdateField(record, field, query.data[field]);`);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function addDateTimeUpdateHandling(writer, model) {
|
|
70
|
+
const dateTimeFields = model.fields
|
|
71
|
+
.filter((field) => field.type === "DateTime" && !field.isList)
|
|
72
|
+
.map(({ name }) => name);
|
|
73
|
+
if (dateTimeFields.length === 0)
|
|
74
|
+
return;
|
|
75
|
+
writer
|
|
76
|
+
.writeLine(`const dateTimeFields = ${JSON.stringify(dateTimeFields)} as const;`)
|
|
77
|
+
.writeLine(`for (const field of dateTimeFields)`)
|
|
78
|
+
.block(() => {
|
|
79
|
+
writer.writeLine(`IDBUtils.handleDateTimeUpdateField(record, field, query.data[field]);`);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function addBooleanUpdateHandling(writer, model) {
|
|
83
|
+
const booleanFields = model.fields
|
|
84
|
+
.filter((field) => field.type === "Boolean" && !field.isList)
|
|
85
|
+
.map(({ name }) => name);
|
|
86
|
+
if (booleanFields.length === 0)
|
|
87
|
+
return;
|
|
88
|
+
writer
|
|
89
|
+
.writeLine(`const booleanFields = ${JSON.stringify(booleanFields)} as const;`)
|
|
90
|
+
.writeLine(`for (const field of booleanFields)`)
|
|
91
|
+
.block(() => {
|
|
92
|
+
writer.writeLine(`IDBUtils.handleBooleanUpdateField(record, field, query.data[field]);`);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function addBytesUpdateHandling(writer, model) {
|
|
96
|
+
const bytesFields = model.fields.filter((field) => field.type === "Bytes" && !field.isList).map(({ name }) => name);
|
|
97
|
+
if (bytesFields.length === 0)
|
|
98
|
+
return;
|
|
99
|
+
writer
|
|
100
|
+
.writeLine(`const bytesFields = ${JSON.stringify(bytesFields)} as const;`)
|
|
101
|
+
.writeLine(`for (const field of bytesFields)`)
|
|
102
|
+
.block(() => {
|
|
103
|
+
writer.writeLine(`IDBUtils.handleBytesUpdateField(record, field, query.data[field]);`);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function addScalarListUpdateHandling(writer, model) {
|
|
107
|
+
const listFields = model.fields.filter((field) => field.isList && field.kind !== "object").map(({ name }) => name);
|
|
108
|
+
if (listFields.length === 0)
|
|
109
|
+
return;
|
|
110
|
+
writer
|
|
111
|
+
.writeLine(`const listFields = ${JSON.stringify(listFields)} as const;`)
|
|
112
|
+
.writeLine(`for (const field of listFields)`)
|
|
113
|
+
.block(() => {
|
|
114
|
+
writer.writeLine(`IDBUtils.handleScalarListUpdateField(record, field, query.data[field]);`);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addApplyRelations = addApplyRelations;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
const ts_morph_1 = require("ts-morph");
|
|
6
|
+
function addApplyRelations(modelClass, model, models) {
|
|
7
|
+
modelClass.addMethod({
|
|
8
|
+
name: "_applyRelations",
|
|
9
|
+
isAsync: true,
|
|
10
|
+
scope: ts_morph_1.Scope.Private,
|
|
11
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findMany'>` }],
|
|
12
|
+
parameters: [
|
|
13
|
+
{ name: "records", type: `Prisma.Result<Prisma.${model.name}Delegate, object, 'findFirstOrThrow'>[]` },
|
|
14
|
+
{
|
|
15
|
+
name: "tx",
|
|
16
|
+
type: "IDBUtils.ReadonlyTransactionType | IDBUtils.ReadwriteTransactionType",
|
|
17
|
+
},
|
|
18
|
+
{ name: "query", type: "Q", hasQuestionToken: true },
|
|
19
|
+
],
|
|
20
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'findFirstOrThrow'>[]>`,
|
|
21
|
+
statements: (writer) => {
|
|
22
|
+
addEarlyExit(writer, model);
|
|
23
|
+
addRelationProcessing(writer, model, models);
|
|
24
|
+
addReturn(writer, model);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function addEarlyExit(writer, model) {
|
|
29
|
+
writer.writeLine(`if (!query) return records as Prisma.Result<Prisma.${model.name}Delegate, Q, 'findFirstOrThrow'>[];`);
|
|
30
|
+
}
|
|
31
|
+
function addRelationProcessing(writer, model, models) {
|
|
32
|
+
const relationFields = model.fields.filter(({ kind }) => kind === "object");
|
|
33
|
+
const allFields = models.flatMap(({ fields }) => fields);
|
|
34
|
+
writer
|
|
35
|
+
.writeLine("const recordsWithRelations = records.map(async (record) => ")
|
|
36
|
+
.block(() => {
|
|
37
|
+
writer.writeLine("const unsafeRecord = record as Record<string, unknown>;");
|
|
38
|
+
relationFields.forEach((field) => {
|
|
39
|
+
writer
|
|
40
|
+
.write(`const attach_${field.name} = `)
|
|
41
|
+
.write(`query.select?.${field.name} || query.include?.${field.name};`)
|
|
42
|
+
.writeLine(`if (attach_${field.name})`)
|
|
43
|
+
.block(() => {
|
|
44
|
+
const otherFieldOfRelation = allFields.find((_field) => _field.relationName === field.relationName && field !== _field);
|
|
45
|
+
handleVariousRelationships(writer, field, otherFieldOfRelation);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
writer.writeLine("return unsafeRecord;");
|
|
49
|
+
})
|
|
50
|
+
.writeLine(");");
|
|
51
|
+
}
|
|
52
|
+
function handleVariousRelationships(writer, field, otherField) {
|
|
53
|
+
var _a;
|
|
54
|
+
if (!field.isList) {
|
|
55
|
+
if ((_a = field.relationFromFields) === null || _a === void 0 ? void 0 : _a.length) {
|
|
56
|
+
addOneToOneMetaOnFieldRelation(writer, field);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
addOneToOneMetaOnOtherFieldRelation(writer, field, otherField);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
addOneToManyRelation(writer, field, otherField);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function addOneToOneMetaOnFieldRelation(writer, field) {
|
|
67
|
+
writer
|
|
68
|
+
.write(`unsafeRecord['${field.name}'] = `)
|
|
69
|
+
.conditionalWrite(!field.isRequired, () => { var _a; return `record.${(_a = field.relationFromFields) === null || _a === void 0 ? void 0 : _a.at(0)} === null ? null :`; })
|
|
70
|
+
.writeLine(`await this.client.${(0, utils_1.toCamelCase)(field.type)}.findUnique(`)
|
|
71
|
+
.block(() => {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
writer
|
|
74
|
+
.writeLine(`...(attach_${field.name} === true ? {} : attach_${field.name}),`)
|
|
75
|
+
.writeLine(`where: { ${(_a = field.relationToFields) === null || _a === void 0 ? void 0 : _a.at(0)}: record.${(_b = field.relationFromFields) === null || _b === void 0 ? void 0 : _b.at(0)} }`);
|
|
76
|
+
})
|
|
77
|
+
.writeLine(`, tx)`);
|
|
78
|
+
}
|
|
79
|
+
function addOneToOneMetaOnOtherFieldRelation(writer, field, otherField) {
|
|
80
|
+
writer
|
|
81
|
+
.writeLine(`unsafeRecord['${field.name}'] = await this.client.${(0, utils_1.toCamelCase)(field.type)}.findUnique(`)
|
|
82
|
+
.block(() => {
|
|
83
|
+
var _a, _b;
|
|
84
|
+
writer
|
|
85
|
+
.writeLine(`...(attach_${field.name} === true ? {} : attach_${field.name}),`)
|
|
86
|
+
.writeLine(`where: { ${(_a = otherField.relationFromFields) === null || _a === void 0 ? void 0 : _a.at(0)}: record.${(_b = otherField.relationToFields) === null || _b === void 0 ? void 0 : _b.at(0)} }`);
|
|
87
|
+
})
|
|
88
|
+
.writeLine(`, tx)`);
|
|
89
|
+
}
|
|
90
|
+
function addOneToManyRelation(writer, field, otherField) {
|
|
91
|
+
writer
|
|
92
|
+
.writeLine(`unsafeRecord['${field.name}'] = await this.client.${(0, utils_1.toCamelCase)(field.type)}.findMany(`)
|
|
93
|
+
.block(() => {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
writer
|
|
96
|
+
.writeLine(`...(attach_${field.name} === true ? {} : attach_${field.name}),`)
|
|
97
|
+
.writeLine(`where: { ${(_a = otherField.relationFromFields) === null || _a === void 0 ? void 0 : _a.at(0)}: record.${(_b = otherField.relationToFields) === null || _b === void 0 ? void 0 : _b.at(0)} }`);
|
|
98
|
+
})
|
|
99
|
+
.writeLine(`, tx)`);
|
|
100
|
+
}
|
|
101
|
+
function addReturn(writer, model) {
|
|
102
|
+
writer
|
|
103
|
+
.write(`return (await Promise.all(recordsWithRelations)) as `)
|
|
104
|
+
.write(`Prisma.Result<Prisma.${model.name}Delegate, Q, 'findFirstOrThrow'>[];`);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=_applyRelations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_applyRelations.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_applyRelations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addApplySelectClause = addApplySelectClause;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
function addApplySelectClause(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "_applySelectClause",
|
|
8
|
+
scope: ts_morph_1.Scope.Private,
|
|
9
|
+
typeParameters: [{ name: "S", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findMany'>['select']` }],
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "records", type: `Prisma.Result<Prisma.${model.name}Delegate, object, 'findFirstOrThrow'>[]` },
|
|
12
|
+
{ name: "selectClause", type: "S" },
|
|
13
|
+
],
|
|
14
|
+
returnType: `Prisma.Result<Prisma.${model.name}Delegate, { select: S }, 'findFirstOrThrow'>[]`,
|
|
15
|
+
statements: (writer) => {
|
|
16
|
+
addEarlyExit(writer, model);
|
|
17
|
+
addSelectProcessing(writer, model);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function addEarlyExit(writer, model) {
|
|
22
|
+
writer.writeLine("if (!selectClause)").block(() => {
|
|
23
|
+
writer.writeLine(`return records as Prisma.Result<Prisma.${model.name}Delegate, { select: S }, 'findFirstOrThrow'>[];`);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function addSelectProcessing(writer, model) {
|
|
27
|
+
writer
|
|
28
|
+
.writeLine("return records.map((record) => ")
|
|
29
|
+
.block(() => {
|
|
30
|
+
writer
|
|
31
|
+
.writeLine("const partialRecord: Partial<typeof record> = record;")
|
|
32
|
+
.writeLine(`for (const untypedKey of ${JSON.stringify(model.fields.map(({ name }) => name))}) `)
|
|
33
|
+
.block(() => {
|
|
34
|
+
writer
|
|
35
|
+
.writeLine("const key = untypedKey as keyof typeof record & keyof S;")
|
|
36
|
+
.writeLine("if (!selectClause[key]) delete partialRecord[key];");
|
|
37
|
+
})
|
|
38
|
+
.writeLine("return partialRecord;");
|
|
39
|
+
})
|
|
40
|
+
.writeLine(`) as Prisma.Result<Prisma.${model.name}Delegate, { select: S }, 'findFirstOrThrow'>[];`);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=_applySelectClause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_applySelectClause.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_applySelectClause.ts"],"names":[],"mappings":";;AAGA,oDAeC;AAjBD,uCAAoE;AAEpE,SAAgB,oBAAoB,CAAC,UAA4B,EAAE,KAAY;IAC7E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,gBAAK,CAAC,OAAO;QACpB,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,iCAAiC,EAAE,CAAC;QAC9G,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,IAAI,yCAAyC,EAAE;YACtG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE;SACpC;QACD,UAAU,EAAE,wBAAwB,KAAK,CAAC,IAAI,gDAAgD;QAC9F,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5B,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB,EAAE,KAAY;IACzD,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAChD,MAAM,CAAC,SAAS,CACd,0CAA0C,KAAK,CAAC,IAAI,iDAAiD,CACtG,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB,EAAE,KAAY;IAChE,MAAM;SACH,SAAS,CAAC,iCAAiC,CAAC;SAC5C,KAAK,CAAC,GAAG,EAAE;QACV,MAAM;aACH,SAAS,CAAC,uDAAuD,CAAC;aAClE,SAAS,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;aAC/F,KAAK,CAAC,GAAG,EAAE;YACV,MAAM;iBACH,SAAS,CAAC,0DAA0D,CAAC;iBACrE,SAAS,CAAC,oDAAoD,CAAC,CAAC;QACrE,CAAC,CAAC;aACD,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC,CAAC;SACD,SAAS,CAAC,6BAA6B,KAAK,CAAC,IAAI,iDAAiD,CAAC,CAAC;AACzG,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addApplyWhereClause = addApplyWhereClause;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
function addApplyWhereClause(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "_applyWhereClause",
|
|
8
|
+
scope: ts_morph_1.Scope.Private,
|
|
9
|
+
typeParameters: [
|
|
10
|
+
{ name: "W", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'findFirstOrThrow'>['where']` },
|
|
11
|
+
{ name: "R", constraint: `Prisma.Result<Prisma.${model.name}Delegate, object, 'findFirstOrThrow'>` },
|
|
12
|
+
],
|
|
13
|
+
parameters: [
|
|
14
|
+
{ name: "records", type: `R[]` },
|
|
15
|
+
{ name: "whereClause", type: "W" },
|
|
16
|
+
],
|
|
17
|
+
returnType: `R[]`,
|
|
18
|
+
statements: (writer) => {
|
|
19
|
+
writer.writeLine(`if (!whereClause) return records;`);
|
|
20
|
+
writer
|
|
21
|
+
.writeLine(`return records.filter((record) => `)
|
|
22
|
+
.block(() => {
|
|
23
|
+
addStringFiltering(writer, model);
|
|
24
|
+
addNumberFiltering(writer, model);
|
|
25
|
+
addBigIntFiltering(writer, model);
|
|
26
|
+
addBoolFiltering(writer, model);
|
|
27
|
+
addBytesFiltering(writer, model);
|
|
28
|
+
addDateTimeFiltering(writer, model);
|
|
29
|
+
writer.writeLine(`return true;`);
|
|
30
|
+
})
|
|
31
|
+
.writeLine(`);`);
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function addStringFiltering(writer, model) {
|
|
36
|
+
const stringFields = model.fields.filter((field) => field.type === "String" && !field.isList).map(({ name }) => name);
|
|
37
|
+
if (stringFields.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
writer
|
|
40
|
+
.writeLine(`const stringFields = ${JSON.stringify(stringFields)} as const;`)
|
|
41
|
+
.writeLine(`for (const field of stringFields)`)
|
|
42
|
+
.block(() => {
|
|
43
|
+
writer.writeLine(`if (!IDBUtils.whereStringFilter(record, field, whereClause[field])) return false;`);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function addNumberFiltering(writer, model) {
|
|
47
|
+
const numberFields = model.fields
|
|
48
|
+
.filter((field) => (field.type === "Int" || field.type === "Float") && !field.isList)
|
|
49
|
+
.map(({ name }) => name);
|
|
50
|
+
if (numberFields.length === 0)
|
|
51
|
+
return;
|
|
52
|
+
writer
|
|
53
|
+
.writeLine(`const numberFields = ${JSON.stringify(numberFields)} as const;`)
|
|
54
|
+
.writeLine(`for (const field of numberFields)`)
|
|
55
|
+
.block(() => {
|
|
56
|
+
writer.writeLine(`if (!IDBUtils.whereNumberFilter(record, field, whereClause[field])) return false;`);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function addBigIntFiltering(writer, model) {
|
|
60
|
+
const numberFields = model.fields.filter((field) => field.type === "BigInt" && !field.isList).map(({ name }) => name);
|
|
61
|
+
if (numberFields.length === 0)
|
|
62
|
+
return;
|
|
63
|
+
writer
|
|
64
|
+
.writeLine(`const bigIntFields = ${JSON.stringify(numberFields)} as const;`)
|
|
65
|
+
.writeLine(`for (const field of bigIntFields)`)
|
|
66
|
+
.block(() => {
|
|
67
|
+
writer.writeLine(`if (!IDBUtils.whereBigIntFilter(record, field, whereClause[field])) return false;`);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function addBoolFiltering(writer, model) {
|
|
71
|
+
const booleanFields = model.fields
|
|
72
|
+
.filter((field) => field.type === "Boolean" && !field.isList)
|
|
73
|
+
.map(({ name }) => name);
|
|
74
|
+
if (booleanFields.length === 0)
|
|
75
|
+
return;
|
|
76
|
+
writer
|
|
77
|
+
.writeLine(`const booleanFields = ${JSON.stringify(booleanFields)} as const;`)
|
|
78
|
+
.writeLine(`for (const field of booleanFields)`)
|
|
79
|
+
.block(() => {
|
|
80
|
+
writer.writeLine(`if (!IDBUtils.whereBoolFilter(record, field, whereClause[field])) return false;`);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function addBytesFiltering(writer, model) {
|
|
84
|
+
const bytesFields = model.fields.filter((field) => field.type === "Bytes" && !field.isList).map(({ name }) => name);
|
|
85
|
+
if (bytesFields.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
writer
|
|
88
|
+
.writeLine(`const bytesFields = ${JSON.stringify(bytesFields)} as const;`)
|
|
89
|
+
.writeLine(`for (const field of bytesFields)`)
|
|
90
|
+
.block(() => {
|
|
91
|
+
writer.writeLine(`if (!IDBUtils.whereBytesFilter(record, field, whereClause[field])) return false;`);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function addDateTimeFiltering(writer, model) {
|
|
95
|
+
const dateTimeFields = model.fields
|
|
96
|
+
.filter((field) => field.type === "DateTime" && !field.isList)
|
|
97
|
+
.map(({ name }) => name);
|
|
98
|
+
if (dateTimeFields.length === 0)
|
|
99
|
+
return;
|
|
100
|
+
writer
|
|
101
|
+
.writeLine(`const dateTimeFields = ${JSON.stringify(dateTimeFields)} as const;`)
|
|
102
|
+
.writeLine(`for (const field of dateTimeFields)`)
|
|
103
|
+
.block(() => {
|
|
104
|
+
writer.writeLine(`if (!IDBUtils.whereDateTimeFilter(record, field, whereClause[field])) return false;`);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=_applyWhereClause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_applyWhereClause.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.ts"],"names":[],"mappings":"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"}
|