@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,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addDateTimeUpdateHandler = addDateTimeUpdateHandler;
4
+ function addDateTimeUpdateHandler(utilsFile, models) {
5
+ const dateTimeFields = models.flatMap(({ fields }) => fields).filter((field) => field.type === "DateTime");
6
+ if (dateTimeFields.length === 0)
7
+ return;
8
+ let updateOperationType = "undefined | Date | string | Prisma.DateTimeFieldUpdateOperationsInput";
9
+ let fieldType = "Date";
10
+ const nullableDateTimeFieldPresent = dateTimeFields.some(({ isRequired }) => !isRequired);
11
+ if (nullableDateTimeFieldPresent) {
12
+ updateOperationType += " | null | Prisma.NullableDateTimeFieldUpdateOperationsInput";
13
+ fieldType += " | null";
14
+ }
15
+ utilsFile.addFunction({
16
+ name: "handleDateTimeUpdateField",
17
+ isExported: true,
18
+ typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
19
+ parameters: [
20
+ { name: "record", type: `R` },
21
+ { name: "fieldName", type: "keyof R" },
22
+ {
23
+ name: "dateTimeUpdate",
24
+ type: updateOperationType,
25
+ },
26
+ ],
27
+ statements: (writer) => {
28
+ writer
29
+ .writeLine(`if (dateTimeUpdate === undefined) return;`)
30
+ .write(`if (typeof dateTimeUpdate === "string" || dateTimeUpdate instanceof Date`)
31
+ .conditionalWrite(nullableDateTimeFieldPresent, ` || dateTimeUpdate === null`)
32
+ .writeLine(`)`)
33
+ .block(() => {
34
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = new Date(dateTimeUpdate);`);
35
+ });
36
+ writer.writeLine(`else if (dateTimeUpdate.set !== undefined)`).block(() => {
37
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = new Date(dateTimeUpdate.set);`);
38
+ });
39
+ },
40
+ });
41
+ }
42
+ //# sourceMappingURL=DateTimeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeHandler.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/updateHandlers/DateTimeHandler.ts"],"names":[],"mappings":";;AAGA,4DAuCC;AAvCD,SAAgB,wBAAwB,CAAC,SAAqB,EAAE,MAAwB;IACtF,MAAM,cAAc,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,UAAU,CAAC,CAAC;IAC3G,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExC,IAAI,mBAAmB,GAAG,uEAAuE,CAAC;IAClG,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,MAAM,4BAA4B,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1F,IAAI,4BAA4B,EAAE,CAAC;QACjC,mBAAmB,IAAI,6DAA6D,CAAC;QACrF,SAAS,IAAI,SAAS,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,2BAA2B;QACjC,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,gBAAgB;gBACtB,IAAI,EAAE,mBAAmB;aAC1B;SACF;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,2CAA2C,CAAC;iBACtD,KAAK,CAAC,0EAA0E,CAAC;iBACjF,gBAAgB,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;iBAC7E,SAAS,CAAC,GAAG,CAAC;iBACd,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,+BAA+B,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YACL,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACxE,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,mCAAmC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addIntUpdateHandler = addIntUpdateHandler;
4
+ function addIntUpdateHandler(utilsFile, models) {
5
+ const intFields = models.flatMap(({ fields }) => fields).filter((field) => field.type === "Int");
6
+ if (intFields.length === 0)
7
+ return;
8
+ let updateOperationType = "undefined | number | Prisma.IntFieldUpdateOperationsInput";
9
+ let fieldType = "number";
10
+ const nullableIntFieldPresent = intFields.some(({ isRequired }) => !isRequired);
11
+ if (nullableIntFieldPresent) {
12
+ updateOperationType += " | null | Prisma.NullableIntFieldUpdateOperationsInput";
13
+ fieldType += " | null";
14
+ }
15
+ utilsFile.addFunction({
16
+ name: "handleIntUpdateField",
17
+ isExported: true,
18
+ typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
19
+ parameters: [
20
+ { name: "record", type: `R` },
21
+ { name: "fieldName", type: "keyof R" },
22
+ {
23
+ name: "intUpdate",
24
+ type: updateOperationType,
25
+ },
26
+ ],
27
+ statements: (writer) => {
28
+ writer
29
+ .writeLine(`if (intUpdate === undefined) return;`)
30
+ .write(`if (typeof intUpdate === "number"`)
31
+ .conditionalWrite(nullableIntFieldPresent, ` || intUpdate === null`)
32
+ .writeLine(`)`)
33
+ .block(() => {
34
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = intUpdate;`);
35
+ });
36
+ writer.writeLine(`else if (intUpdate.set !== undefined)`).block(() => {
37
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = intUpdate.set;`);
38
+ });
39
+ },
40
+ });
41
+ }
42
+ //# sourceMappingURL=IntHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntHandler.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/updateHandlers/IntHandler.ts"],"names":[],"mappings":";;AAKA,kDAuCC;AAvCD,SAAgB,mBAAmB,CAAC,SAAqB,EAAE,MAAwB;IACjF,MAAM,SAAS,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,KAAK,CAAC,CAAC;IACjG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,IAAI,mBAAmB,GAAG,2DAA2D,CAAC;IACtF,IAAI,SAAS,GAAG,QAAQ,CAAC;IAEzB,MAAM,uBAAuB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAChF,IAAI,uBAAuB,EAAE,CAAC;QAC5B,mBAAmB,IAAI,wDAAwD,CAAC;QAChF,SAAS,IAAI,SAAS,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,sBAAsB;QAC5B,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,WAAW;gBACjB,IAAI,EAAE,mBAAmB;aAC1B;SACF;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,sCAAsC,CAAC;iBACjD,KAAK,CAAC,mCAAmC,CAAC;iBAC1C,gBAAgB,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;iBACnE,SAAS,CAAC,GAAG,CAAC;iBACd,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,gBAAgB,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YACL,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnE,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,oBAAoB,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addScalarListUpdateHandler = addScalarListUpdateHandler;
4
+ function addScalarListUpdateHandler(utilsFile, models) {
5
+ const scalarListFields = models
6
+ .flatMap(({ fields }) => fields)
7
+ .filter((field) => field.isList && field.kind !== "object");
8
+ if (scalarListFields.length === 0)
9
+ return;
10
+ utilsFile.addFunction({
11
+ name: "handleScalarListUpdateField",
12
+ isExported: true,
13
+ typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
14
+ parameters: [
15
+ { name: "record", type: `R` },
16
+ { name: "fieldName", type: "keyof R" },
17
+ {
18
+ name: "listUpdate",
19
+ type: "undefined | unknown[] | { set?: unknown[]; push?: unknown | unknown[] }",
20
+ },
21
+ ],
22
+ statements: (writer) => {
23
+ writer
24
+ .writeLine(`if (listUpdate === undefined) return;`)
25
+ .write(`if (Array.isArray(listUpdate))`)
26
+ .block(() => {
27
+ writer.writeLine(`(record[fieldName] as unknown[]) = listUpdate;`);
28
+ })
29
+ .writeLine(`else if (listUpdate.set !== undefined)`)
30
+ .block(() => {
31
+ writer.writeLine(`(record[fieldName] as unknown[]) = listUpdate.set;`);
32
+ })
33
+ .writeLine(`else if (listUpdate.push !== undefined)`)
34
+ .block(() => {
35
+ writer.writeLine(`(record[fieldName] as unknown[]).push(...convertToArray(listUpdate.push));`);
36
+ });
37
+ },
38
+ });
39
+ }
40
+ //# sourceMappingURL=ScalarListHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarListHandler.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/updateHandlers/ScalarListHandler.ts"],"names":[],"mappings":";;AAGA,gEAmCC;AAnCD,SAAgB,0BAA0B,CAAC,SAAqB,EAAE,MAAwB;IACxF,MAAM,gBAAgB,GAAG,MAAM;SAC5B,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE1C,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,6BAA6B;QACnC,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,yEAAyE;aAChF;SACF;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,uCAAuC,CAAC;iBAClD,KAAK,CAAC,gCAAgC,CAAC;iBACvC,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;YACrE,CAAC,CAAC;iBACD,SAAS,CAAC,wCAAwC,CAAC;iBACnD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;YACzE,CAAC,CAAC;iBACD,SAAS,CAAC,yCAAyC,CAAC;iBACpD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,4EAA4E,CAAC,CAAC;YACjG,CAAC,CAAC,CAAC;QACP,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addStringUpdateHandler = addStringUpdateHandler;
4
+ function addStringUpdateHandler(utilsFile, models) {
5
+ const stringFields = models.flatMap(({ fields }) => fields).filter((field) => field.type === "String");
6
+ if (stringFields.length === 0)
7
+ return;
8
+ let updateOperationType = "undefined | string | Prisma.StringFieldUpdateOperationsInput";
9
+ let fieldType = "string";
10
+ const nullableStringFieldPresent = stringFields.some(({ isRequired }) => !isRequired);
11
+ if (nullableStringFieldPresent) {
12
+ updateOperationType += " | null | Prisma.NullableStringFieldUpdateOperationsInput";
13
+ fieldType += " | null";
14
+ }
15
+ utilsFile.addFunction({
16
+ name: "handleStringUpdateField",
17
+ isExported: true,
18
+ typeParameters: [{ name: "T" }, { name: "R", constraint: `Prisma.Result<T, object, "findFirstOrThrow">` }],
19
+ parameters: [
20
+ { name: "record", type: `R` },
21
+ { name: "fieldName", type: "keyof R" },
22
+ {
23
+ name: "stringUpdate",
24
+ type: updateOperationType,
25
+ },
26
+ ],
27
+ statements: (writer) => {
28
+ writer
29
+ .writeLine(`if (stringUpdate === undefined) return;`)
30
+ .write(`if (typeof stringUpdate === "string"`)
31
+ .conditionalWrite(nullableStringFieldPresent, ` || stringUpdate === null`)
32
+ .writeLine(`)`)
33
+ .block(() => {
34
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = stringUpdate;`);
35
+ });
36
+ writer.writeLine(`else if (stringUpdate.set !== undefined)`).block(() => {
37
+ writer.writeLine(`(record[fieldName] as ${fieldType}) = stringUpdate.set;`);
38
+ });
39
+ },
40
+ });
41
+ }
42
+ //# sourceMappingURL=StringHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHandler.js","sourceRoot":"","sources":["../../../../src/fileCreators/utils/updateHandlers/StringHandler.ts"],"names":[],"mappings":";;AAGA,wDAuCC;AAvCD,SAAgB,sBAAsB,CAAC,SAAqB,EAAE,MAAwB;IACpF,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,IAAI,mBAAmB,GAAG,8DAA8D,CAAC;IACzF,IAAI,SAAS,GAAG,QAAQ,CAAC;IAEzB,MAAM,0BAA0B,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACtF,IAAI,0BAA0B,EAAE,CAAC;QAC/B,mBAAmB,IAAI,2DAA2D,CAAC;QACnF,SAAS,IAAI,SAAS,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,WAAW,CAAC;QACpB,IAAI,EAAE,yBAAyB;QAC/B,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,mBAAmB;aAC1B;SACF;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM;iBACH,SAAS,CAAC,yCAAyC,CAAC;iBACpD,KAAK,CAAC,sCAAsC,CAAC;iBAC7C,gBAAgB,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;iBACzE,SAAS,CAAC,GAAG,CAAC;iBACd,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,mBAAmB,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YACL,MAAM,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtE,MAAM,CAAC,SAAS,CAAC,yBAAyB,SAAS,uBAAuB,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const generator_helper_1 = require("@prisma/generator-helper");
4
+ const ts_morph_1 = require("ts-morph");
5
+ const package_json_1 = require("../package.json");
6
+ const create_1 = require("./fileCreators/idb-interface/create");
7
+ const create_2 = require("./fileCreators/prisma-idb-client/create");
8
+ const create_3 = require("./fileCreators/utils/create");
9
+ const fileWriting_1 = require("./helpers/fileWriting");
10
+ (0, generator_helper_1.generatorHandler)({
11
+ onManifest() {
12
+ return {
13
+ version: package_json_1.version,
14
+ defaultOutput: "../generated",
15
+ };
16
+ },
17
+ onGenerate: async (options) => {
18
+ var _a;
19
+ const project = new ts_morph_1.Project();
20
+ const { models } = options.dmmf.datamodel;
21
+ const outputPath = (_a = options.generator.output) === null || _a === void 0 ? void 0 : _a.value;
22
+ await (0, fileWriting_1.writeSourceFile)(project, "prisma-idb-client.ts", outputPath, (file) => {
23
+ (0, create_2.createPrismaIDBClientFile)(file, models);
24
+ });
25
+ await (0, fileWriting_1.writeSourceFile)(project, "idb-interface.ts", outputPath, (file) => {
26
+ (0, create_1.createIDBInterfaceFile)(file, models);
27
+ });
28
+ await (0, fileWriting_1.writeSourceFile)(project, "idb-utils.ts", outputPath, (file) => {
29
+ (0, create_3.createUtilsFile)(file, models);
30
+ });
31
+ },
32
+ });
33
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;AAAA,+DAA8E;AAC9E,uCAAmC;AACnC,kDAA0C;AAC1C,gEAA6E;AAC7E,oEAAoF;AACpF,wDAA8D;AAC9D,uDAAwD;AAExD,IAAA,mCAAgB,EAAC;IACf,UAAU;QACR,OAAO;YACL,OAAO,EAAP,sBAAO;YACP,aAAa,EAAE,cAAc;SAC9B,CAAC;IACJ,CAAC;IAED,UAAU,EAAE,KAAK,EAAE,OAAyB,EAAE,EAAE;;QAC9C,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,SAAS,CAAC,MAAM,0CAAE,KAAe,CAAC;QAE7D,MAAM,IAAA,6BAAe,EAAC,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAA,kCAAyB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,MAAM,IAAA,6BAAe,EAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACtE,IAAA,+BAAsB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,IAAA,6BAAe,EAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YAClE,IAAA,wBAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.writeSourceFile = writeSourceFile;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const prettier_1 = __importDefault(require("prettier"));
10
+ async function writeSourceFile(project, filename, outputPath, callback) {
11
+ const file = project.createSourceFile(filename, "", { overwrite: true });
12
+ callback(file);
13
+ file.organizeImports();
14
+ const writeLocation = path_1.default.join(outputPath, file.getBaseName());
15
+ await writeFileSafely(writeLocation, file.getText());
16
+ }
17
+ const formatFile = (content, filepath) => {
18
+ return new Promise((res, rej) => prettier_1.default.resolveConfig(filepath).then((options) => {
19
+ if (!options)
20
+ res(content);
21
+ try {
22
+ const formatted = prettier_1.default.format(content, {
23
+ ...options,
24
+ parser: "typescript",
25
+ });
26
+ res(formatted);
27
+ }
28
+ catch (error) {
29
+ rej(error);
30
+ }
31
+ }));
32
+ };
33
+ const writeFileSafely = async (writeLocation, content) => {
34
+ fs_1.default.mkdirSync(path_1.default.dirname(writeLocation), {
35
+ recursive: true,
36
+ });
37
+ fs_1.default.writeFileSync(writeLocation, await formatFile(content, writeLocation));
38
+ };
39
+ //# sourceMappingURL=fileWriting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileWriting.js","sourceRoot":"","sources":["../../src/helpers/fileWriting.ts"],"names":[],"mappings":";;;;;AAKA,0CAWC;AAhBD,4CAAoB;AACpB,gDAAwB;AACxB,wDAAgC;AAGzB,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,QAAgB,EAChB,UAAkB,EAClB,QAAoC;IAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,IAAI,CAAC,eAAe,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAmB,EAAE;IACxE,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC9B,kBAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,kBAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;gBACzC,GAAG,OAAO;gBACV,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,GAAG,CAAC,SAAS,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,aAAqB,EAAE,OAAe,EAAE,EAAE;IACvE,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACxC,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,YAAE,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toCamelCase = toCamelCase;
4
+ exports.getUniqueIdentifiers = getUniqueIdentifiers;
5
+ exports.getModelFieldData = getModelFieldData;
6
+ function toCamelCase(str) {
7
+ return str
8
+ .replace(/[_\s-]+(.)?/g, (_, chr) => (chr ? chr.toUpperCase() : ""))
9
+ .replace(/^(.)/, (match) => match.toLowerCase());
10
+ }
11
+ function createIdentifierTuple(fieldNames, model) {
12
+ return JSON.stringify(fieldNames.map((keyFieldName) => {
13
+ const keyField = model.fields.find(({ name }) => keyFieldName === name);
14
+ return `${keyField.name}: Prisma.${model.name}['${keyField.name}']`;
15
+ })).replaceAll('"', "");
16
+ }
17
+ function getUniqueIdentifiers(model) {
18
+ var _a;
19
+ const uniqueIdentifiers = [];
20
+ if (model.primaryKey) {
21
+ const name = (_a = model.primaryKey.name) !== null && _a !== void 0 ? _a : model.primaryKey.fields.join("_");
22
+ uniqueIdentifiers.push({
23
+ name,
24
+ keyPath: JSON.stringify(model.primaryKey.fields),
25
+ keyPathType: createIdentifierTuple(model.primaryKey.fields, model),
26
+ });
27
+ }
28
+ const idField = model.fields.find(({ isId }) => isId);
29
+ if (idField) {
30
+ uniqueIdentifiers.push({
31
+ name: idField.name,
32
+ keyPath: JSON.stringify([idField.name]),
33
+ keyPathType: createIdentifierTuple([idField.name], model),
34
+ });
35
+ }
36
+ const uniqueField = model.fields.filter(({ isUnique }) => isUnique);
37
+ uniqueField.forEach((uniqueField) => {
38
+ uniqueIdentifiers.push({
39
+ name: uniqueField.name,
40
+ keyPath: JSON.stringify([uniqueField.name]),
41
+ keyPathType: createIdentifierTuple([uniqueField.name], model),
42
+ });
43
+ });
44
+ const compositeUniqueFields = model.uniqueIndexes;
45
+ compositeUniqueFields.forEach(({ name, fields }) => {
46
+ name = name !== null && name !== void 0 ? name : fields.join("_");
47
+ uniqueIdentifiers.push({
48
+ name,
49
+ keyPath: JSON.stringify(fields),
50
+ keyPathType: createIdentifierTuple(fields, model),
51
+ });
52
+ });
53
+ if (uniqueIdentifiers.length === 0)
54
+ throw new Error(`Unable to generate valid IDB key for ${model.name}`);
55
+ return uniqueIdentifiers;
56
+ }
57
+ function getModelFieldData(model) {
58
+ const keyPath = JSON.parse(getUniqueIdentifiers(model)[0].keyPath);
59
+ const nonKeyUniqueFields = model.fields.filter(({ isUnique, name }) => isUnique && !keyPath.includes(name));
60
+ const storeName = toCamelCase(model.name);
61
+ const optionalFields = model.fields.filter((field) => !field.isRequired);
62
+ const fieldsWithDefaultValue = model.fields.filter((field) => field.hasDefaultValue);
63
+ const allRequiredFieldsHaveDefaults = fieldsWithDefaultValue.length === model.fields.length - optionalFields.length;
64
+ return { optionalFields, fieldsWithDefaultValue, allRequiredFieldsHaveDefaults, nonKeyUniqueFields, storeName };
65
+ }
66
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import globals from "globals";
2
+ import tseslint from "typescript-eslint";
3
+
4
+ export default [
5
+ { ignores: ["dist/*"] },
6
+ { files: ["**/*.{js,mjs,cjs,ts}"] },
7
+ { languageOptions: { globals: globals.browser } },
8
+ ...tseslint.configs.recommended,
9
+ ];
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@prisma-idb/idb-client-generator",
3
+ "description": "Generate types for idb from prisma schema",
4
+ "version": "0.1.0",
5
+ "main": "dist/generator.js",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "idb-client-generator": "dist/bin.js"
9
+ },
10
+ "engines": {
11
+ "node": ">=14.0"
12
+ },
13
+ "scripts": {
14
+ "start": "node dist/bin.js",
15
+ "dev": "npx tsc -w",
16
+ "build": "npx tsc",
17
+ "prepack": "yarn build",
18
+ "lint": "npx prettier . --check && npx eslint .",
19
+ "format": "npx prettier . --write",
20
+ "release": "release-it"
21
+ },
22
+ "dependencies": {
23
+ "@prisma/client": "5.21.1",
24
+ "@prisma/generator-helper": "5.21.1",
25
+ "@prisma/internals": "5.21.1",
26
+ "idb": "8.0.0",
27
+ "prettier": "3.3.3",
28
+ "ts-morph": "24.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@release-it/conventional-changelog": "^9.0.3",
32
+ "@types/node": "22.7.8",
33
+ "@types/prettier": "2.7.3",
34
+ "prisma": "5.21.1",
35
+ "release-it": "^17.10.0",
36
+ "typescript": "5.6.3"
37
+ },
38
+ "homepage": "https://github.com/prisma-idb/idb-client-generator",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/prisma-idb/idb-client-generator.git"
42
+ },
43
+ "author": "Your Name <Your Email>",
44
+ "keywords": [
45
+ "prisma",
46
+ "generator"
47
+ ],
48
+ "bugs": {
49
+ "url": "https://github.com/prisma-idb/idb-client-generator/issues"
50
+ },
51
+ "publishConfig": {
52
+ "access": "public"
53
+ }
54
+ }