@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.
Files changed (86) hide show
  1. package/.prettierignore +2 -0
  2. package/.prettierrc +3 -0
  3. package/.release-it.json +11 -0
  4. package/README.md +8 -0
  5. package/dist/bin.js +5 -0
  6. package/dist/bin.js.map +1 -0
  7. package/dist/fileCreators/idb-interface/create.js +35 -0
  8. package/dist/fileCreators/idb-interface/create.js.map +1 -0
  9. package/dist/fileCreators/prisma-idb-client/classes/BaseIDBModelClass.js +72 -0
  10. package/dist/fileCreators/prisma-idb-client/classes/BaseIDBModelClass.js.map +1 -0
  11. package/dist/fileCreators/prisma-idb-client/classes/PrismaIDBClient.js +75 -0
  12. package/dist/fileCreators/prisma-idb-client/classes/PrismaIDBClient.js.map +1 -0
  13. package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js +44 -0
  14. package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -0
  15. package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js +41 -0
  16. package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js.map +1 -0
  17. package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js +196 -0
  18. package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js.map +1 -0
  19. package/dist/fileCreators/prisma-idb-client/classes/models/api/createMany.js +36 -0
  20. package/dist/fileCreators/prisma-idb-client/classes/models/api/createMany.js.map +1 -0
  21. package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js +30 -0
  22. package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js.map +1 -0
  23. package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirst.js +25 -0
  24. package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirst.js.map +1 -0
  25. package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirstOrThrow.js +30 -0
  26. package/dist/fileCreators/prisma-idb-client/classes/models/api/findFirstOrThrow.js.map +1 -0
  27. package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js +44 -0
  28. package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js.map +1 -0
  29. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js +66 -0
  30. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js.map +1 -0
  31. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUniqueOrThrow.js +30 -0
  32. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUniqueOrThrow.js.map +1 -0
  33. package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js +117 -0
  34. package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js.map +1 -0
  35. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyRelations.js +106 -0
  36. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyRelations.js.map +1 -0
  37. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applySelectClause.js +42 -0
  38. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applySelectClause.js.map +1 -0
  39. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js +107 -0
  40. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js.map +1 -0
  41. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js +145 -0
  42. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js.map +1 -0
  43. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.js +58 -0
  44. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForCreate.js.map +1 -0
  45. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.js +37 -0
  46. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getStoresNeededForFind.js.map +1 -0
  47. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.js +25 -0
  48. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_removeNestedCreateData.js.map +1 -0
  49. package/dist/fileCreators/prisma-idb-client/create.js +49 -0
  50. package/dist/fileCreators/prisma-idb-client/create.js.map +1 -0
  51. package/dist/fileCreators/types.js +3 -0
  52. package/dist/fileCreators/types.js.map +1 -0
  53. package/dist/fileCreators/utils/create.js +53 -0
  54. package/dist/fileCreators/utils/create.js.map +1 -0
  55. package/dist/fileCreators/utils/filters/BigIntFilter.js +108 -0
  56. package/dist/fileCreators/utils/filters/BigIntFilter.js.map +1 -0
  57. package/dist/fileCreators/utils/filters/BoolFilter.js +68 -0
  58. package/dist/fileCreators/utils/filters/BoolFilter.js.map +1 -0
  59. package/dist/fileCreators/utils/filters/BytesFilter.js +90 -0
  60. package/dist/fileCreators/utils/filters/BytesFilter.js.map +1 -0
  61. package/dist/fileCreators/utils/filters/DateTimeFilter.js +122 -0
  62. package/dist/fileCreators/utils/filters/DateTimeFilter.js.map +1 -0
  63. package/dist/fileCreators/utils/filters/NumberFilter.js +117 -0
  64. package/dist/fileCreators/utils/filters/NumberFilter.js.map +1 -0
  65. package/dist/fileCreators/utils/filters/StringFilter.js +189 -0
  66. package/dist/fileCreators/utils/filters/StringFilter.js.map +1 -0
  67. package/dist/fileCreators/utils/updateHandlers/BooleanHandler.js +42 -0
  68. package/dist/fileCreators/utils/updateHandlers/BooleanHandler.js.map +1 -0
  69. package/dist/fileCreators/utils/updateHandlers/BytesHandler.js +42 -0
  70. package/dist/fileCreators/utils/updateHandlers/BytesHandler.js.map +1 -0
  71. package/dist/fileCreators/utils/updateHandlers/DateTimeHandler.js +42 -0
  72. package/dist/fileCreators/utils/updateHandlers/DateTimeHandler.js.map +1 -0
  73. package/dist/fileCreators/utils/updateHandlers/IntHandler.js +42 -0
  74. package/dist/fileCreators/utils/updateHandlers/IntHandler.js.map +1 -0
  75. package/dist/fileCreators/utils/updateHandlers/ScalarListHandler.js +40 -0
  76. package/dist/fileCreators/utils/updateHandlers/ScalarListHandler.js.map +1 -0
  77. package/dist/fileCreators/utils/updateHandlers/StringHandler.js +42 -0
  78. package/dist/fileCreators/utils/updateHandlers/StringHandler.js.map +1 -0
  79. package/dist/generator.js +33 -0
  80. package/dist/generator.js.map +1 -0
  81. package/dist/helpers/fileWriting.js +39 -0
  82. package/dist/helpers/fileWriting.js.map +1 -0
  83. package/dist/helpers/utils.js +66 -0
  84. package/dist/helpers/utils.js.map +1 -0
  85. package/eslint.config.mjs +9 -0
  86. 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
@@ -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
@@ -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
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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":";;AAGA,0CAgDC;AAhDD,SAAgB,eAAe,CAAC,SAAqB,EAAE,MAAwB;IAC7E,MAAM,YAAY,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,QAAQ,CAAC,CAAC;IACvG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtC,MAAM,0BAA0B,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACtF,IAAI,UAAU,GAAG,4DAA4D,CAAC;IAC9E,IAAI,0BAA0B,EAAE,CAAC;QAC/B,UAAU,IAAI,gDAAgD,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,mBAAmB;QACzB,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,cAAc;gBACpB,IAAI,EAAE,UAAU;aACjB;SACF;QACD,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,8CAA8C,CAAC;iBACzD,SAAS,EAAE;iBACX,SAAS,CAAC,mDAAmD,CAAC;iBAC9D,SAAS,CAAC,mDAAmD,CAAC;iBAC9D,SAAS,EAAE;iBACX,SAAS,CAAC,2EAA2E,CAAC;iBACtF,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;YAChE,CAAC,CAAC;iBACD,SAAS,CAAC,MAAM,CAAC;iBACjB,KAAK,CAAC,GAAG,EAAE;gBACV,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,aAAa,CAAC,MAAM,CAAC,CAAC;gBACtB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,aAAa,CAAC,MAAM,CAAC,CAAC;gBACtB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,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,mCAAmC,CAAC;SAC9C,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,SAAS,CAAC,yFAAyF,CAAC;SACpG,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM;SACH,SAAS,CAAC,gCAAgC,CAAC;SAC3C,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,SAAS,CAAC,mFAAmF,CAAC;SAC9F,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB;IAC3C,MAAM,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACjE,MAAM;aACH,SAAS,CAAC,mCAAmC,CAAC;aAC9C,SAAS,CAAC,mFAAmF,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,MAAuB;IAC9C,MAAM,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACpE,MAAM;aACH,SAAS,CAAC,mCAAmC,CAAC;aAC9C,SAAS,CAAC,qFAAqF,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB;IAC3C,MAAM,CAAC,SAAS,CAAC,iFAAiF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC7G,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM,CAAC,SAAS,CAAC,mFAAmF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC/G,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB;IAC3C,MAAM,CAAC,SAAS,CAAC,iFAAiF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC7G,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC5C,MAAM,CAAC,SAAS,CAAC,mFAAmF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC/G,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -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"}