@prisma-idb/idb-client-generator 0.6.1 → 0.7.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 +2 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -1
- package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js +14 -5
- package/dist/fileCreators/prisma-idb-client/classes/models/api/update.js.map +1 -1
- package/dist/fileCreators/prisma-idb-client/classes/models/api/upsert.js +39 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/upsert.js.map +1 -0
- package/package.json +1 -1
|
@@ -25,6 +25,7 @@ const _applyOrderByClause_1 = require("./utils/_applyOrderByClause");
|
|
|
25
25
|
const _resolveOrderByKey_1 = require("./utils/_resolveOrderByKey");
|
|
26
26
|
const _resolveSortOrder_1 = require("./utils/_resolveSortOrder");
|
|
27
27
|
const _preprocessListFields_1 = require("./utils/_preprocessListFields");
|
|
28
|
+
const upsert_1 = require("./api/upsert");
|
|
28
29
|
function addIDBModelClass(file, model, models) {
|
|
29
30
|
const modelClass = file.addClass({
|
|
30
31
|
name: `${model.name}IDBClass`,
|
|
@@ -54,5 +55,6 @@ function addIDBModelClass(file, model, models) {
|
|
|
54
55
|
(0, delete_1.addDeleteMethod)(modelClass, model, models);
|
|
55
56
|
(0, deleteMany_1.addDeleteManyMethod)(modelClass, model, models);
|
|
56
57
|
(0, update_1.addUpdateMethod)(modelClass, model);
|
|
58
|
+
(0, upsert_1.addUpsertMethod)(modelClass, model);
|
|
57
59
|
}
|
|
58
60
|
//# 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":";;AA4BA,4CAmCC;AA7DD,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;AACvD,qEAAoE;AACpE,mEAAkE;AAClE,iEAAgE;AAChE,yEAAwE;AACxE,yCAA+C;AAE/C,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,2CAAqB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,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;IACnD,IAAA,+CAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE3C,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;IACnC,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -13,7 +13,7 @@ function addUpdateMethod(modelClass, model) {
|
|
|
13
13
|
],
|
|
14
14
|
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'update'>>`,
|
|
15
15
|
statements: (writer) => {
|
|
16
|
-
addGetRecord(writer);
|
|
16
|
+
addGetRecord(writer, model);
|
|
17
17
|
addStringUpdateHandling(writer, model);
|
|
18
18
|
addDateTimeUpdateHandling(writer, model);
|
|
19
19
|
addBooleanUpdateHandling(writer, model);
|
|
@@ -24,22 +24,31 @@ function addUpdateMethod(modelClass, model) {
|
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
function addGetRecord(writer) {
|
|
27
|
+
function addGetRecord(writer, model) {
|
|
28
|
+
const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath);
|
|
28
29
|
writer
|
|
29
30
|
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
|
|
30
31
|
.writeLine(`const record = await this.findUnique({ where: query.where }, tx);`)
|
|
31
32
|
.writeLine(`if (record === null)`)
|
|
32
33
|
.block(() => {
|
|
33
34
|
writer.writeLine(`tx.abort();`).writeLine(`throw new Error("Record not found");`);
|
|
34
|
-
})
|
|
35
|
+
})
|
|
36
|
+
.writeLine(`const startKeyPath: PrismaIDBSchema["${model.name}"]["key"] = [${pk.map((field) => `record.${field}, `)}];`);
|
|
35
37
|
}
|
|
36
38
|
function addPutAndReturn(writer, model) {
|
|
37
|
-
const pk = (0, utils_1.getUniqueIdentifiers)(model)[0];
|
|
39
|
+
const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath);
|
|
38
40
|
writer
|
|
41
|
+
.writeLine(`const endKeyPath: PrismaIDBSchema["${model.name}"]["key"] = [${pk.map((field) => `record.${field}, `)}];`)
|
|
42
|
+
.writeLine(`for (let i = 0; i < startKeyPath.length; i++)`)
|
|
43
|
+
.block(() => {
|
|
44
|
+
writer.writeLine(`if (startKeyPath[i] !== endKeyPath[i])`).block(() => {
|
|
45
|
+
writer.writeLine(`await tx.objectStore("${model.name}").delete(startKeyPath);`).writeLine(`break;`);
|
|
46
|
+
});
|
|
47
|
+
})
|
|
39
48
|
.writeLine(`const keyPath = await tx.objectStore("${model.name}").put(record);`)
|
|
40
49
|
.writeLine(`const recordWithRelations = (await this.findUnique(`)
|
|
41
50
|
.block(() => {
|
|
42
|
-
writer.writeLine(`...query, where: { ${
|
|
51
|
+
writer.writeLine(`...query, where: { ${pk[0]}: keyPath[0] },`);
|
|
43
52
|
})
|
|
44
53
|
.writeLine(`, tx))!;`)
|
|
45
54
|
.writeLine(`return recordWithRelations as Prisma.Result<Prisma.${model.name}Delegate, Q, "update">;`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/update.ts"],"names":[],"mappings":";;AAIA,0CAsBC;AA1BD,wDAAoE;AAIpE,SAAgB,eAAe,CAAC,UAA4B,EAAE,KAAY;IACxE,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,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,mCAAmC,EAAE;SAClF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,yBAAyB;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,YAAY,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addUpsertMethod = addUpsertMethod;
|
|
4
|
+
const utils_1 = require("../../../../../helpers/utils");
|
|
5
|
+
function addUpsertMethod(modelClass, model) {
|
|
6
|
+
modelClass.addMethod({
|
|
7
|
+
name: "upsert",
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "upsert">` }],
|
|
9
|
+
isAsync: true,
|
|
10
|
+
parameters: [
|
|
11
|
+
{ name: "query", type: "Q" },
|
|
12
|
+
{ name: "tx", hasQuestionToken: true, type: "IDBUtils.ReadwriteTransactionType" },
|
|
13
|
+
],
|
|
14
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, "upsert">>`,
|
|
15
|
+
statements: (writer) => {
|
|
16
|
+
addGetAndUpsertRecord(writer);
|
|
17
|
+
addRefetchAndReturnRecord(writer, model);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function addGetAndUpsertRecord(writer) {
|
|
22
|
+
writer
|
|
23
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
|
|
24
|
+
.writeLine(`let record = await this.findUnique({ where: query.where }, tx);`)
|
|
25
|
+
.writeLine(`if (!record) record = await this.create({ data: query.create }, tx);`)
|
|
26
|
+
.writeLine(`else record = await this.update({ where: query.where, data: query.update }, tx);`);
|
|
27
|
+
}
|
|
28
|
+
function addRefetchAndReturnRecord(writer, model) {
|
|
29
|
+
const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath)[0];
|
|
30
|
+
const hasRelations = model.fields.some(({ kind }) => kind === "object");
|
|
31
|
+
let recordFindQuery = `record = await this.findUniqueOrThrow({ where: { ${pk}: record.${pk} }, select: query.select`;
|
|
32
|
+
if (hasRelations)
|
|
33
|
+
recordFindQuery += ", include: query.include";
|
|
34
|
+
recordFindQuery += "});";
|
|
35
|
+
writer
|
|
36
|
+
.writeLine(recordFindQuery)
|
|
37
|
+
.writeLine(`return record as Prisma.Result<Prisma.${model.name}Delegate, Q, "upsert">;`);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=upsert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/upsert.ts"],"names":[],"mappings":";;AAIA,0CAeC;AAnBD,wDAAoE;AAIpE,SAAgB,eAAe,CAAC,UAA4B,EAAE,KAAY;IACxE,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAClG,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,mCAAmC,EAAE;SAClF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,yBAAyB;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB;IAEpD,MAAM;SACH,SAAS,CAAC,uGAAuG,CAAC;SAClH,SAAS,CAAC,iEAAiE,CAAC;SAC5E,SAAS,CAAC,sEAAsE,CAAC;SACjF,SAAS,CAAC,kFAAkF,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAuB,EAAE,KAAY;IAEtE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAExE,IAAI,eAAe,GAAG,oDAAoD,EAAE,YAAY,EAAE,0BAA0B,CAAC;IACrH,IAAI,YAAY;QAAE,eAAe,IAAI,0BAA0B,CAAC;IAChE,eAAe,IAAI,KAAK,CAAC;IAEzB,MAAM;SACH,SAAS,CAAC,eAAe,CAAC;SAC1B,SAAS,CAAC,yCAAyC,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;AAC7F,CAAC"}
|