@prisma-idb/idb-client-generator 0.4.0 → 0.6.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 (45) hide show
  1. package/dist/fileCreators/idb-utils/comparator/genericComparator.js +56 -0
  2. package/dist/fileCreators/idb-utils/comparator/genericComparator.js.map +1 -0
  3. package/dist/fileCreators/idb-utils/create.js +14 -0
  4. package/dist/fileCreators/idb-utils/create.js.map +1 -1
  5. package/dist/fileCreators/idb-utils/listFilters/BigIntListFilter.js +65 -0
  6. package/dist/fileCreators/idb-utils/listFilters/BigIntListFilter.js.map +1 -0
  7. package/dist/fileCreators/idb-utils/listFilters/BooleanListFilter.js +65 -0
  8. package/dist/fileCreators/idb-utils/listFilters/BooleanListFilter.js.map +1 -0
  9. package/dist/fileCreators/idb-utils/listFilters/BytesListFilter.js +65 -0
  10. package/dist/fileCreators/idb-utils/listFilters/BytesListFilter.js.map +1 -0
  11. package/dist/fileCreators/idb-utils/listFilters/DateTimeListFilter.js +65 -0
  12. package/dist/fileCreators/idb-utils/listFilters/DateTimeListFilter.js.map +1 -0
  13. package/dist/fileCreators/idb-utils/listFilters/NumberListFilter.js +74 -0
  14. package/dist/fileCreators/idb-utils/listFilters/NumberListFilter.js.map +1 -0
  15. package/dist/fileCreators/idb-utils/listFilters/StringListFilter.js +65 -0
  16. package/dist/fileCreators/idb-utils/listFilters/StringListFilter.js.map +1 -0
  17. package/dist/fileCreators/idb-utils/updateHandlers/ScalarListHandler.js +11 -3
  18. package/dist/fileCreators/idb-utils/updateHandlers/ScalarListHandler.js.map +1 -1
  19. package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js +8 -0
  20. package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -1
  21. package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js +2 -2
  22. package/dist/fileCreators/prisma-idb-client/classes/models/api/count.js.map +1 -1
  23. package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js +2 -1
  24. package/dist/fileCreators/prisma-idb-client/classes/models/api/create.js.map +1 -1
  25. package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js +2 -1
  26. package/dist/fileCreators/prisma-idb-client/classes/models/api/createManyAndReturn.js.map +1 -1
  27. package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js +5 -2
  28. package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js.map +1 -1
  29. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js +1 -0
  30. package/dist/fileCreators/prisma-idb-client/classes/models/api/findUnique.js.map +1 -1
  31. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyOrderByClause.js +62 -0
  32. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyOrderByClause.js.map +1 -0
  33. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js +115 -49
  34. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_applyWhereClause.js.map +1 -1
  35. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js +1 -1
  36. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_fillDefaults.js.map +1 -1
  37. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForFind.js +18 -0
  38. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_getNeededStoresForFind.js.map +1 -1
  39. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_preprocessListFields.js +24 -0
  40. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_preprocessListFields.js.map +1 -0
  41. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_resolveOrderByKey.js +69 -0
  42. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_resolveOrderByKey.js.map +1 -0
  43. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_resolveSortOrder.js +40 -0
  44. package/dist/fileCreators/prisma-idb-client/classes/models/utils/_resolveSortOrder.js.map +1 -0
  45. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addResolveOrderByKey = addResolveOrderByKey;
4
+ const utils_1 = require("../../../../../helpers/utils");
5
+ function addResolveOrderByKey(modelClass, model, models) {
6
+ modelClass.addMethod({
7
+ name: "_resolveOrderByKey",
8
+ isAsync: true,
9
+ parameters: [
10
+ { name: "record", type: `Prisma.Result<Prisma.${model.name}Delegate, object, "findFirstOrThrow">` },
11
+ { name: "orderByInput", type: `Prisma.${model.name}OrderByWithRelationInput` },
12
+ { name: "tx", type: "IDBUtils.TransactionType" },
13
+ ],
14
+ returnType: "Promise<unknown>",
15
+ statements: (writer) => {
16
+ addScalarResolution(writer, model);
17
+ addOneToOneResolution(writer, model, models);
18
+ addOneToManyResolution(writer, model, models);
19
+ },
20
+ });
21
+ }
22
+ function addScalarResolution(writer, model) {
23
+ const scalarFields = model.fields.filter(({ kind }) => kind !== "object");
24
+ for (const field of scalarFields) {
25
+ writer.writeLine(`if (orderByInput.${field.name})`).block(() => {
26
+ writer.writeLine(`return record.${field.name};`);
27
+ });
28
+ }
29
+ }
30
+ function addOneToOneResolution(writer, model, models) {
31
+ var _a;
32
+ const oneToOneRelationFields = model.fields.filter(({ kind, isList }) => kind === "object" && !isList);
33
+ for (const field of oneToOneRelationFields) {
34
+ let otherRecordField, recordField;
35
+ if ((_a = field.relationFromFields) === null || _a === void 0 ? void 0 : _a.length) {
36
+ otherRecordField = field.relationToFields.at(0);
37
+ recordField = field.relationFromFields.at(0);
38
+ }
39
+ else {
40
+ const otherField = models
41
+ .flatMap(({ fields }) => fields)
42
+ .find((_field) => _field !== field && _field.relationName === field.relationName);
43
+ otherRecordField = otherField.relationFromFields.at(0);
44
+ recordField = otherField.relationToFields.at(0);
45
+ }
46
+ const nestedRecordQuery = `await this.client.${(0, utils_1.toCamelCase)(field.type)}.findFirstOrThrow({ where: { ${otherRecordField}: record.${recordField} } })`;
47
+ let returnValue = `await this.client.${(0, utils_1.toCamelCase)(field.type)}._resolveOrderByKey(${nestedRecordQuery}, orderByInput.${field.name}, tx);`;
48
+ if (!field.isRequired) {
49
+ returnValue = `record.${recordField} === null ? null : ` + returnValue;
50
+ }
51
+ writer.writeLine(`if (orderByInput.${field.name})`).block(() => {
52
+ writer.writeLine(`return ${returnValue}`);
53
+ });
54
+ }
55
+ }
56
+ function addOneToManyResolution(writer, model, models) {
57
+ const oneToManyRelationFields = model.fields.filter(({ kind, isList }) => kind === "object" && isList);
58
+ for (const field of oneToManyRelationFields) {
59
+ const otherField = models
60
+ .flatMap(({ fields }) => fields)
61
+ .find((_field) => _field !== field && _field.relationName === field.relationName);
62
+ const pkOfOther = otherField.relationFromFields.at(0);
63
+ const fkToOther = otherField.relationToFields.at(0);
64
+ writer.writeLine(`if (orderByInput.${field.name})`).block(() => {
65
+ writer.writeLine(`return await this.client.${(0, utils_1.toCamelCase)(field.type)}.count({ where: { ${pkOfOther}: record.${fkToOther} } }, tx);`);
66
+ });
67
+ }
68
+ }
69
+ //# sourceMappingURL=_resolveOrderByKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_resolveOrderByKey.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_resolveOrderByKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addResolveSortOrder = addResolveSortOrder;
4
+ const utils_1 = require("../../../../../helpers/utils");
5
+ function addResolveSortOrder(modelClass, model) {
6
+ modelClass.addMethod({
7
+ name: "_resolveSortOrder",
8
+ parameters: [{ name: "orderByInput", type: `Prisma.${model.name}OrderByWithRelationInput` }],
9
+ returnType: "Prisma.SortOrder | Prisma.SortOrderInput",
10
+ statements: (writer) => {
11
+ addScalarResolution(writer, model);
12
+ addOneToOneRelationResolution(writer, model);
13
+ addOneToManyRelationResolution(writer, model);
14
+ writer.writeLine(`throw new Error("No field in orderBy clause");`);
15
+ },
16
+ });
17
+ }
18
+ function addScalarResolution(writer, model) {
19
+ const scalarFields = model.fields.filter(({ kind }) => kind !== "object");
20
+ for (const field of scalarFields) {
21
+ writer.writeLine(`if (orderByInput.${field.name}) return orderByInput.${field.name}`);
22
+ }
23
+ }
24
+ function addOneToOneRelationResolution(writer, model) {
25
+ const relationFields = model.fields.filter(({ kind, isList }) => kind === "object" && !isList);
26
+ for (const field of relationFields) {
27
+ writer.writeLine(`if (orderByInput.${field.name})`).block(() => {
28
+ writer.writeLine(`return this.client.${(0, utils_1.toCamelCase)(field.type)}._resolveSortOrder(orderByInput.${field.name});`);
29
+ });
30
+ }
31
+ }
32
+ function addOneToManyRelationResolution(writer, model) {
33
+ const relationFields = model.fields.filter(({ kind, isList }) => kind === "object" && isList);
34
+ for (const field of relationFields) {
35
+ writer.writeLine(`if (orderByInput.${field.name}?._count)`).block(() => {
36
+ writer.writeLine(`return orderByInput.${field.name}._count;`);
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=_resolveSortOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_resolveSortOrder.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/utils/_resolveSortOrder.ts"],"names":[],"mappings":";;AAIA,kDAYC;AAdD,wDAA2D;AAE3D,SAAgB,mBAAmB,CAAC,UAA4B,EAAE,KAAY;IAC5E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC5F,UAAU,EAAE,0CAA0C;QACtD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7C,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACrE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB,EAAE,KAAY;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,oBAAoB,KAAK,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAuB,EAAE,KAAY;IAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/F,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,oBAAoB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7D,MAAM,CAAC,SAAS,CAAC,sBAAsB,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QACnH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAuB,EAAE,KAAY;IAC3E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC9F,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,oBAAoB,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACrE,MAAM,CAAC,SAAS,CAAC,uBAAuB,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prisma-idb/idb-client-generator",
3
3
  "description": "Generate types for idb from prisma schema",
4
- "version": "0.4.0",
4
+ "version": "0.6.0",
5
5
  "main": "dist/generator.js",
6
6
  "license": "MIT",
7
7
  "bin": {