@prisma-idb/idb-client-generator 0.3.0 → 0.4.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/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js +4 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -1
- package/dist/fileCreators/prisma-idb-client/classes/models/api/delete.js +57 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/delete.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/deleteMany.js +42 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/deleteMany.js.map +1 -0
- package/package.json +1 -1
|
@@ -19,6 +19,8 @@ const _getNeededStoresForCreate_1 = require("./utils/_getNeededStoresForCreate")
|
|
|
19
19
|
const _getNeededStoresForFind_1 = require("./utils/_getNeededStoresForFind");
|
|
20
20
|
const _removeNestedCreateData_1 = require("./utils/_removeNestedCreateData");
|
|
21
21
|
const _getNeededStoresForWhere_1 = require("./utils/_getNeededStoresForWhere");
|
|
22
|
+
const delete_1 = require("./api/delete");
|
|
23
|
+
const deleteMany_1 = require("./api/deleteMany");
|
|
22
24
|
function addIDBModelClass(file, model, models) {
|
|
23
25
|
const modelClass = file.addClass({
|
|
24
26
|
name: `${model.name}IDBClass`,
|
|
@@ -41,6 +43,8 @@ function addIDBModelClass(file, model, models) {
|
|
|
41
43
|
(0, create_1.addCreateMethod)(modelClass, model, models);
|
|
42
44
|
(0, createMany_1.addCreateManyMethod)(modelClass, model);
|
|
43
45
|
(0, createManyAndReturn_1.addCreateManyAndReturn)(modelClass, model);
|
|
46
|
+
(0, delete_1.addDeleteMethod)(modelClass, model, models);
|
|
47
|
+
(0, deleteMany_1.addDeleteManyMethod)(modelClass, model, models);
|
|
44
48
|
(0, update_1.addUpdateMethod)(modelClass, model);
|
|
45
49
|
}
|
|
46
50
|
//# sourceMappingURL=IDBModelClass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDBModelClass.js","sourceRoot":"","sources":["../../../../../src/fileCreators/prisma-idb-client/classes/models/IDBModelClass.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"IDBModelClass.js","sourceRoot":"","sources":["../../../../../src/fileCreators/prisma-idb-client/classes/models/IDBModelClass.ts"],"names":[],"mappings":";;AAuBA,4CA8BC;AAnDD,uCAA6C;AAC7C,yCAA+C;AAC/C,iDAAuD;AACvD,mEAAmE;AACnE,+CAAqD;AACrD,6DAA6D;AAC7D,6CAAmD;AACnD,iDAAuD;AACvD,+DAA+D;AAC/D,yCAA+C;AAC/C,6DAA4D;AAC5D,mEAAkE;AAClE,iEAAgE;AAChE,yDAAgE;AAChE,iFAAgF;AAChF,6EAA4E;AAC5E,6EAAkF;AAClF,+EAA8E;AAC9E,yCAA+C;AAC/C,iDAAuD;AAEvD,SAAgB,gBAAgB,CAAC,IAAgB,EAAE,KAAY,EAAE,MAAwB;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,UAAU;QAC7B,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;IAEH,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,mCAAiB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAA,uCAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAA,qDAA0B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAA,mDAAyB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAA,uDAA2B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAA,yDAA+B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAA,4BAAiB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrC,IAAA,8BAAkB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtC,IAAA,sCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,wCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,sBAAc,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAElC,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,4CAAsB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE1C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addDeleteMethod = addDeleteMethod;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addDeleteMethod(modelClass, model, models) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "delete",
|
|
8
|
+
isAsync: true,
|
|
9
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'delete'>` }],
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "query", type: "Q" },
|
|
12
|
+
{
|
|
13
|
+
name: "tx",
|
|
14
|
+
hasQuestionToken: true,
|
|
15
|
+
type: "IDBUtils.ReadwriteTransactionType",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'delete'>>`,
|
|
19
|
+
statements: (writer) => {
|
|
20
|
+
createTxAndGetRecord(writer, model, models);
|
|
21
|
+
handleCascadeDeletes(writer, model, models);
|
|
22
|
+
deleteAndReturnRecord(writer, model);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function createTxAndGetRecord(writer, model, models) {
|
|
27
|
+
writer.writeLine(`const storesNeeded = this._getNeededStoresForFind(query);`);
|
|
28
|
+
const cascadingModels = models.filter((_model) => _model.fields.some((field) => field.relationOnDelete === "Cascade" && field.type === model.name));
|
|
29
|
+
for (const cascadeModel of cascadingModels) {
|
|
30
|
+
writer.writeLine(`storesNeeded.add("${cascadeModel.name}")`);
|
|
31
|
+
}
|
|
32
|
+
writer
|
|
33
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(storesNeeded), "readwrite");`)
|
|
34
|
+
.writeLine(`const record = await this.findUnique(query, tx);`)
|
|
35
|
+
.writeLine(`if (!record) throw new Error("Record not found");`);
|
|
36
|
+
}
|
|
37
|
+
function handleCascadeDeletes(writer, model, models) {
|
|
38
|
+
const cascadingModels = models.filter((_model) => _model.fields.some((field) => field.relationOnDelete === "Cascade" && field.type === model.name));
|
|
39
|
+
for (const cascadeModel of cascadingModels) {
|
|
40
|
+
const cascadingFks = cascadeModel.fields.filter((field) => field.relationOnDelete === "Cascade" && field.type === model.name);
|
|
41
|
+
for (const cascadingFk of cascadingFks) {
|
|
42
|
+
writer
|
|
43
|
+
.write(`await this.client.${(0, utils_1.toCamelCase)(cascadeModel.name)}.deleteMany(`)
|
|
44
|
+
.block(() => {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
const fk = (_a = cascadingFk.relationFromFields) === null || _a === void 0 ? void 0 : _a.at(0);
|
|
47
|
+
const pk = (_b = cascadingFk.relationToFields) === null || _b === void 0 ? void 0 : _b.at(0);
|
|
48
|
+
writer.write(`where: { ${fk}: record.${pk} }`);
|
|
49
|
+
})
|
|
50
|
+
.writeLine(`, tx)`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function deleteAndReturnRecord(writer, model) {
|
|
55
|
+
writer.writeLine(`await tx.objectStore("${model.name}").delete([record.id]);`).writeLine(`return record;`);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/delete.ts"],"names":[],"mappings":";;AAIA,0CAoBC;AAxBD,wDAA2D;AAI3D,SAAgB,eAAe,CAAC,UAA4B,EAAE,KAAY,EAAE,MAAwB;IAClG,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAClG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,mCAAmC;aAC1C;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,yBAAyB;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5C,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5C,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAuB,EAAE,KAAY,EAAE,MAAwB;IAC3F,MAAM,CAAC,SAAS,CAAC,2DAA2D,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACjG,CAAC;IACF,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,qBAAqB,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM;SACH,SAAS,CAAC,gFAAgF,CAAC;SAC3F,SAAS,CAAC,kDAAkD,CAAC;SAC7D,SAAS,CAAC,mDAAmD,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAuB,EAAE,KAAY,EAAE,MAAwB;IAC3F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACjG,CAAC;IACF,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAC7E,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM;iBACH,KAAK,CAAC,qBAAqB,IAAA,mBAAW,EAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;iBACxE,KAAK,CAAC,GAAG,EAAE;;gBACV,MAAM,EAAE,GAAG,MAAA,WAAW,CAAC,kBAAkB,0CAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,EAAE,GAAG,MAAA,WAAW,CAAC,gBAAgB,0CAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC;iBACD,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB,EAAE,KAAY;IAClE,MAAM,CAAC,SAAS,CAAC,yBAAyB,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAC7G,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addDeleteManyMethod = addDeleteManyMethod;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addDeleteManyMethod(modelClass, model, models) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "deleteMany",
|
|
8
|
+
isAsync: true,
|
|
9
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'deleteMany'>` }],
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "query", type: "Q" },
|
|
12
|
+
{
|
|
13
|
+
name: "tx",
|
|
14
|
+
hasQuestionToken: true,
|
|
15
|
+
type: "IDBUtils.ReadwriteTransactionType",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'deleteMany'>>`,
|
|
19
|
+
statements: (writer) => {
|
|
20
|
+
createTxAndGetRecord(writer, model, models);
|
|
21
|
+
deleteRecords(writer, model);
|
|
22
|
+
writer.writeLine(`return { count: records.length };`);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function createTxAndGetRecord(writer, model, models) {
|
|
27
|
+
writer.writeLine(`const storesNeeded = this._getNeededStoresForFind(query);`);
|
|
28
|
+
const cascadingModels = models.filter((_model) => _model.fields.some((field) => field.relationOnDelete === "Cascade" && field.type === model.name));
|
|
29
|
+
for (const cascadeModel of cascadingModels) {
|
|
30
|
+
writer.writeLine(`storesNeeded.add("${cascadeModel.name}")`);
|
|
31
|
+
}
|
|
32
|
+
writer
|
|
33
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(storesNeeded), "readwrite");`)
|
|
34
|
+
.writeLine(`const records = await this.findMany(query, tx);`);
|
|
35
|
+
}
|
|
36
|
+
function deleteRecords(writer, model) {
|
|
37
|
+
const pkOfModel = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath)[0];
|
|
38
|
+
writer.writeLine(`for (const record of records)`).block(() => {
|
|
39
|
+
writer.writeLine(`await this.delete({ where: { ${pkOfModel}: record.${pkOfModel} } }, tx);`);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=deleteMany.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/deleteMany.ts"],"names":[],"mappings":";;AAIA,kDAoBC;AAtBD,wDAAoE;AAEpE,SAAgB,mBAAmB,CAAC,UAA4B,EAAE,KAAY,EAAE,MAAwB;IACtG,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACtG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,mCAAmC;aAC1C;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,6BAA6B;QACnF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5C,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACxD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAuB,EAAE,KAAY,EAAE,MAAwB;IAC3F,MAAM,CAAC,SAAS,CAAC,2DAA2D,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACjG,CAAC;IACF,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,qBAAqB,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM;SACH,SAAS,CAAC,gFAAgF,CAAC;SAC3F,SAAS,CAAC,iDAAiD,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB,EAAE,KAAY;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3D,MAAM,CAAC,SAAS,CAAC,gCAAgC,SAAS,YAAY,SAAS,YAAY,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACL,CAAC"}
|