@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,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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"}
|
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
|
+
}
|