@prisma-idb/idb-client-generator 0.11.6 → 0.13.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 -2
- package/dist/fileCreators/prisma-idb-client/classes/models/IDBModelClass.js.map +1 -1
- package/dist/fileCreators/prisma-idb-client/classes/models/api/aggregate.js +112 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/aggregate.js.map +1 -0
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js +18 -1
- package/dist/fileCreators/prisma-idb-client/classes/models/api/findMany.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addIDBModelClass = addIDBModelClass;
|
|
4
|
+
const aggregate_1 = require("./api/aggregate");
|
|
4
5
|
const count_1 = require("./api/count");
|
|
5
6
|
const create_1 = require("./api/create");
|
|
6
7
|
const createMany_1 = require("./api/createMany");
|
|
@@ -22,13 +23,13 @@ const _applyWhereClause_1 = require("./utils/_applyWhereClause");
|
|
|
22
23
|
const _fillDefaults_1 = require("./utils/_fillDefaults");
|
|
23
24
|
const _getNeededStoresForCreate_1 = require("./utils/_getNeededStoresForCreate");
|
|
24
25
|
const _getNeededStoresForFind_1 = require("./utils/_getNeededStoresForFind");
|
|
26
|
+
const _getNeededStoresForNestedDelete_1 = require("./utils/_getNeededStoresForNestedDelete");
|
|
27
|
+
const _getNeededStoresForUpdate_1 = require("./utils/_getNeededStoresForUpdate");
|
|
25
28
|
const _getNeededStoresForWhere_1 = require("./utils/_getNeededStoresForWhere");
|
|
26
29
|
const _preprocessListFields_1 = require("./utils/_preprocessListFields");
|
|
27
30
|
const _removeNestedCreateData_1 = require("./utils/_removeNestedCreateData");
|
|
28
31
|
const _resolveOrderByKey_1 = require("./utils/_resolveOrderByKey");
|
|
29
32
|
const _resolveSortOrder_1 = require("./utils/_resolveSortOrder");
|
|
30
|
-
const _getNeededStoresForUpdate_1 = require("./utils/_getNeededStoresForUpdate");
|
|
31
|
-
const _getNeededStoresForNestedDelete_1 = require("./utils/_getNeededStoresForNestedDelete");
|
|
32
33
|
function addIDBModelClass(file, model, models) {
|
|
33
34
|
const modelClass = file.addClass({
|
|
34
35
|
name: `${model.name}IDBClass`,
|
|
@@ -62,5 +63,6 @@ function addIDBModelClass(file, model, models) {
|
|
|
62
63
|
(0, update_1.addUpdateMethod)(modelClass, model, models);
|
|
63
64
|
(0, updateMany_1.addUpdateMany)(modelClass, model);
|
|
64
65
|
(0, upsert_1.addUpsertMethod)(modelClass, model);
|
|
66
|
+
(0, aggregate_1.addAggregateMethod)(modelClass, model);
|
|
65
67
|
}
|
|
66
68
|
//# 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":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addAggregateMethod = addAggregateMethod;
|
|
4
|
+
function addAggregateMethod(modelClass, model) {
|
|
5
|
+
modelClass.addMethod({
|
|
6
|
+
name: "aggregate",
|
|
7
|
+
isAsync: true,
|
|
8
|
+
typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, 'aggregate'>` }],
|
|
9
|
+
parameters: [
|
|
10
|
+
{ name: "query", hasQuestionToken: true, type: "Q" },
|
|
11
|
+
{ name: "tx", hasQuestionToken: true, type: "IDBUtils.TransactionType" },
|
|
12
|
+
],
|
|
13
|
+
returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'aggregate'>>`,
|
|
14
|
+
statements: (writer) => {
|
|
15
|
+
addTxAndRecordSetup(writer, model);
|
|
16
|
+
addCountHandling(writer);
|
|
17
|
+
addAvgHandling(writer, model);
|
|
18
|
+
addSumHandling(writer, model);
|
|
19
|
+
addMinHandling(writer, model);
|
|
20
|
+
addMaxHandling(writer, model);
|
|
21
|
+
writer.writeLine(`return result as unknown as Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">;`);
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function addTxAndRecordSetup(writer, model) {
|
|
26
|
+
writer
|
|
27
|
+
.writeLine(`tx = tx ?? this.client._db.transaction(["${model.name}"], "readonly");`)
|
|
28
|
+
.writeLine(`const records = await this.findMany({ where: query?.where }, tx);`)
|
|
29
|
+
.writeLine(`const result: Partial<Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">> = {};`);
|
|
30
|
+
}
|
|
31
|
+
function addCountHandling(writer) {
|
|
32
|
+
writer.writeLine(`if (query?._count)`).block(() => {
|
|
33
|
+
writer
|
|
34
|
+
.writeLine(`if (query._count === true)`)
|
|
35
|
+
.block(() => {
|
|
36
|
+
writer.writeLine(`(result._count as number) = records.length;`);
|
|
37
|
+
})
|
|
38
|
+
.writeLine(`else`)
|
|
39
|
+
.block(() => {
|
|
40
|
+
writer.writeLine(`for (const key of Object.keys(query._count))`).block(() => {
|
|
41
|
+
writer
|
|
42
|
+
.writeLine(`const typedKey = key as keyof typeof query._count;`)
|
|
43
|
+
.writeLine(`if (typedKey === "_all")`)
|
|
44
|
+
.block(() => {
|
|
45
|
+
writer
|
|
46
|
+
.writeLine(`(result._count as Record<string, number>)[typedKey] = records.length;`)
|
|
47
|
+
.writeLine(`continue;`);
|
|
48
|
+
})
|
|
49
|
+
.writeLine(`(result._count as Record<string, number>)[typedKey] = (`)
|
|
50
|
+
.writeLine("await this.findMany({ where: { [`${typedKey}`]: { not: null } } }, tx)")
|
|
51
|
+
.writeLine(`).length;`);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function addAvgHandling(writer, model) {
|
|
57
|
+
writer.writeLine(`if (query?._avg)`).block(() => {
|
|
58
|
+
writer
|
|
59
|
+
.writeLine(`const avgResult = {} as Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">["_avg"];`)
|
|
60
|
+
.writeLine(`for (const untypedField of Object.keys(query._avg))`)
|
|
61
|
+
.block(() => {
|
|
62
|
+
writer
|
|
63
|
+
.writeLine(`const field = untypedField as keyof (typeof records)[number];`)
|
|
64
|
+
.writeLine(`const values = records.map((record) => record[field] as number);`)
|
|
65
|
+
.writeLine(`(avgResult[field as keyof typeof avgResult] as number) = values.reduce((a, b) => a + b, 0) / values.length;`);
|
|
66
|
+
})
|
|
67
|
+
.writeLine(`result._avg = avgResult;`);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function addSumHandling(writer, model) {
|
|
71
|
+
writer.writeLine(`if (query?._sum)`).block(() => {
|
|
72
|
+
writer
|
|
73
|
+
.writeLine(`const sumResult = {} as Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">["_sum"];`)
|
|
74
|
+
.writeLine(`for (const untypedField of Object.keys(query._sum))`)
|
|
75
|
+
.block(() => {
|
|
76
|
+
writer
|
|
77
|
+
.writeLine(`const field = untypedField as keyof (typeof records)[number];`)
|
|
78
|
+
.writeLine(`const values = records.map((record) => record[field] as number);`)
|
|
79
|
+
.writeLine(`(sumResult[field as keyof typeof sumResult] as number) = values.reduce((a, b) => a + b, 0);`);
|
|
80
|
+
})
|
|
81
|
+
.writeLine(`result._sum = sumResult;`);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function addMinHandling(writer, model) {
|
|
85
|
+
writer.writeLine(`if (query?._min)`).block(() => {
|
|
86
|
+
writer
|
|
87
|
+
.writeLine(`const minResult = {} as Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">["_min"];`)
|
|
88
|
+
.writeLine(`for (const untypedField of Object.keys(query._min))`)
|
|
89
|
+
.block(() => {
|
|
90
|
+
writer
|
|
91
|
+
.writeLine(`const field = untypedField as keyof (typeof records)[number];`)
|
|
92
|
+
.writeLine(`const values = records.map((record) => record[field] as number);`)
|
|
93
|
+
.writeLine(`(minResult[field as keyof typeof minResult] as number) = Math.min(...values);`);
|
|
94
|
+
})
|
|
95
|
+
.writeLine(`result._min = minResult;`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function addMaxHandling(writer, model) {
|
|
99
|
+
writer.writeLine(`if (query?._max)`).block(() => {
|
|
100
|
+
writer
|
|
101
|
+
.writeLine(`const maxResult = {} as Prisma.Result<Prisma.${model.name}Delegate, Q, "aggregate">["_max"];`)
|
|
102
|
+
.writeLine(`for (const untypedField of Object.keys(query._max))`)
|
|
103
|
+
.block(() => {
|
|
104
|
+
writer
|
|
105
|
+
.writeLine(`const field = untypedField as keyof (typeof records)[number];`)
|
|
106
|
+
.writeLine(`const values = records.map((record) => record[field] as number);`)
|
|
107
|
+
.writeLine(`(maxResult[field as keyof typeof maxResult] as number) = Math.max(...values);`);
|
|
108
|
+
})
|
|
109
|
+
.writeLine(`result._max = maxResult;`);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ function addFindManyMethod(modelClass, model) {
|
|
|
19
19
|
getRecords(writer, model);
|
|
20
20
|
applyRelationsToRecords(writer, model);
|
|
21
21
|
applySelectClauseToRecords(writer);
|
|
22
|
+
applyDistinctClauseToRecords(writer);
|
|
22
23
|
returnRecords(writer, model);
|
|
23
24
|
},
|
|
24
25
|
});
|
|
@@ -37,7 +38,23 @@ function applyRelationsToRecords(writer, model) {
|
|
|
37
38
|
function applySelectClauseToRecords(writer) {
|
|
38
39
|
writer
|
|
39
40
|
.writeLine("const selectClause = query?.select;")
|
|
40
|
-
.writeLine("
|
|
41
|
+
.writeLine("let selectAppliedRecords = this._applySelectClause(relationAppliedRecords, selectClause);");
|
|
42
|
+
}
|
|
43
|
+
function applyDistinctClauseToRecords(writer) {
|
|
44
|
+
writer.writeLine("if (query?.distinct)").block(() => {
|
|
45
|
+
writer
|
|
46
|
+
.writeLine(`const distinctFields = IDBUtils.convertToArray(query.distinct);`)
|
|
47
|
+
.writeLine(`const seen = new Set<string>();`)
|
|
48
|
+
.writeLine(`selectAppliedRecords = selectAppliedRecords.filter((record) => `)
|
|
49
|
+
.block(() => {
|
|
50
|
+
writer
|
|
51
|
+
.writeLine(`const key = distinctFields.map((field) => record[field]).join("|");`)
|
|
52
|
+
.writeLine(`if (seen.has(key)) return false;`)
|
|
53
|
+
.writeLine(`seen.add(key);`)
|
|
54
|
+
.writeLine(`return true;`);
|
|
55
|
+
})
|
|
56
|
+
.writeLine(");");
|
|
57
|
+
});
|
|
41
58
|
}
|
|
42
59
|
function returnRecords(writer, model) {
|
|
43
60
|
writer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findMany.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findMany.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"findMany.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/findMany.ts"],"names":[],"mappings":";;AAGA,8CAsBC;AAtBD,SAAgB,iBAAiB,CAAC,UAA4B,EAAE,KAAY;IAC1E,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACpG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACpD;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,0BAA0B;aACjC;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,2BAA2B;QACjF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1B,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACnC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YACrC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,MAAuB,EAAE,KAAY;IACvD,MAAM;SACH,SAAS,CAAC,sGAAsG,CAAC;SACjH,SAAS,CACR,sEAAsE,KAAK,CAAC,IAAI,iCAAiC,CAClH;SACA,SAAS,CAAC,8DAA8D,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAuB,EAAE,KAAY;IACpE,MAAM;SACH,KAAK,CAAC,kFAAkF,CAAC;SACzF,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAuB;IACzD,MAAM;SACH,SAAS,CAAC,qCAAqC,CAAC;SAChD,SAAS,CAAC,2FAA2F,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAuB;IAC3D,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAClD,MAAM;aACH,SAAS,CAAC,iEAAiE,CAAC;aAC5E,SAAS,CAAC,iCAAiC,CAAC;aAC5C,SAAS,CAAC,iEAAiE,CAAC;aAC5E,KAAK,CAAC,GAAG,EAAE;YACV,MAAM;iBACH,SAAS,CAAC,qEAAqE,CAAC;iBAChF,SAAS,CAAC,kCAAkC,CAAC;iBAC7C,SAAS,CAAC,gBAAgB,CAAC;iBAC3B,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,SAAS,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB,EAAE,KAAY;IAC1D,MAAM;SACH,SAAS,CAAC,mDAAmD,CAAC;SAC9D,SAAS,CAAC,uDAAuD,KAAK,CAAC,IAAI,2BAA2B,CAAC,CAAC;AAC7G,CAAC"}
|