@pkgverse/prismock 2.0.5-beta.0 → 2.0.5-beta.1
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/lib/client.d.ts +3 -0
- package/dist/lib/delegate.d.ts +2 -2
- package/dist/lib/extensions/index.d.ts +3 -1
- package/dist/lib/extensions/result.d.ts +5 -3
- package/dist/lib/globals.d.ts +6 -0
- package/dist/lib/operations/create.d.ts +1 -1
- package/dist/lib/operations/find/find.d.ts +1 -1
- package/dist/lib/prismock.d.ts +4 -4
- package/dist/lib/types/Find.d.ts +1 -1
- package/dist/lib/types/GroupBy.d.ts +1 -1
- package/dist/v6/index.cjs +68 -39
- package/dist/v6/index.mjs +2720 -41
- package/dist/v7/index.cjs +70 -39
- package/dist/v7/index.mjs +2786 -41
- package/package.json +5 -1
package/dist/v7/index.cjs
CHANGED
|
@@ -1290,9 +1290,6 @@ function mergeAggregateArg(aggregation, aggregate2, value) {
|
|
|
1290
1290
|
[aggregation]: Object.fromEntries(Object.keys(valueToProcess).map((k) => [k, true]))
|
|
1291
1291
|
};
|
|
1292
1292
|
}
|
|
1293
|
-
// src/lib/operations/create.ts
|
|
1294
|
-
var import_library = require("@prisma/client/runtime/library");
|
|
1295
|
-
|
|
1296
1293
|
// node_modules/bson/lib/bson.node.mjs
|
|
1297
1294
|
var import_crypto = require("crypto");
|
|
1298
1295
|
var TypedArrayPrototypeGetSymbolToStringTag = (() => {
|
|
@@ -4416,6 +4413,7 @@ var buffer = ByteUtils.allocate(MAXSIZE);
|
|
|
4416
4413
|
|
|
4417
4414
|
// src/lib/operations/create.ts
|
|
4418
4415
|
var import_cuid2 = __toESM(require_cuid2());
|
|
4416
|
+
var import_client_runtime_utils = require("@prisma/client-runtime-utils");
|
|
4419
4417
|
var isAutoIncrement = (field) => {
|
|
4420
4418
|
return field.default?.name === "autoincrement";
|
|
4421
4419
|
};
|
|
@@ -4468,7 +4466,7 @@ function calculateDefaultFieldValue(field, properties) {
|
|
|
4468
4466
|
if (field.type === "Json" && typeof field.default === "string")
|
|
4469
4467
|
return JSON.parse(field.default);
|
|
4470
4468
|
if (field.type === "Decimal" && typeof field.default === "number")
|
|
4471
|
-
return new
|
|
4469
|
+
return new import_client_runtime_utils.Decimal(field.default);
|
|
4472
4470
|
if (["string", "number", "boolean"].includes(typeof field.default))
|
|
4473
4471
|
return field.default;
|
|
4474
4472
|
return;
|
|
@@ -4802,15 +4800,31 @@ function updateMany(args, current, delegates, onChange) {
|
|
|
4802
4800
|
// node_modules/@prisma/client/package.json
|
|
4803
4801
|
var version = "6.12.0";
|
|
4804
4802
|
|
|
4803
|
+
// src/lib/globals.ts
|
|
4804
|
+
async function getGlobals() {
|
|
4805
|
+
const { PrismaClientKnownRequestError, Decimal: Decimal2 } = await import("@prisma/client-runtime-utils");
|
|
4806
|
+
const DMMF = await (async () => {
|
|
4807
|
+
if (true) {
|
|
4808
|
+
return await import("@prisma/dmmf-v7");
|
|
4809
|
+
}
|
|
4810
|
+
return await import("@prisma/dmmf-v6");
|
|
4811
|
+
})();
|
|
4812
|
+
return {
|
|
4813
|
+
PrismaClientKnownRequestError,
|
|
4814
|
+
Decimal: Decimal2,
|
|
4815
|
+
DMMF
|
|
4816
|
+
};
|
|
4817
|
+
}
|
|
4818
|
+
|
|
4805
4819
|
// src/lib/delegate.ts
|
|
4806
|
-
|
|
4807
|
-
|
|
4820
|
+
async function generateDelegate(model, data, name, properties, delegates, onChange) {
|
|
4821
|
+
const { PrismaClientKnownRequestError } = await getGlobals();
|
|
4808
4822
|
const delegate = {};
|
|
4809
4823
|
Object.assign(delegate, {
|
|
4810
4824
|
delete: (args = {}) => {
|
|
4811
4825
|
const deleted = deleteMany(args, delegate, delegates, onChange);
|
|
4812
4826
|
if (deleted.length === 0)
|
|
4813
|
-
return Promise.reject(new
|
|
4827
|
+
return Promise.reject(new PrismaClientKnownRequestError(`No record was found for a delete on ${delegate.model.name}`, {
|
|
4814
4828
|
code: "P2025",
|
|
4815
4829
|
clientVersion: version,
|
|
4816
4830
|
meta: {
|
|
@@ -4827,7 +4841,7 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
|
|
|
4827
4841
|
update: (args) => {
|
|
4828
4842
|
const updated = updateMany(args, delegate, delegates, onChange);
|
|
4829
4843
|
const [update3] = updated;
|
|
4830
|
-
return update3 ? Promise.resolve(update3) : Promise.reject(new
|
|
4844
|
+
return update3 ? Promise.resolve(update3) : Promise.reject(new PrismaClientKnownRequestError(`No record was found for an update on ${delegate.model.name}`, {
|
|
4831
4845
|
code: "P2025",
|
|
4832
4846
|
clientVersion: version,
|
|
4833
4847
|
meta: {
|
|
@@ -4873,7 +4887,7 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
|
|
|
4873
4887
|
findUniqueOrThrow: (args = {}) => {
|
|
4874
4888
|
const found = findOne(args, delegate, delegates);
|
|
4875
4889
|
if (!found)
|
|
4876
|
-
return Promise.reject(new
|
|
4890
|
+
return Promise.reject(new PrismaClientKnownRequestError(`No record was found for a query on ${delegate.model.name}`, {
|
|
4877
4891
|
code: "P2025",
|
|
4878
4892
|
clientVersion: version
|
|
4879
4893
|
}));
|
|
@@ -4882,7 +4896,7 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
|
|
|
4882
4896
|
findFirstOrThrow: (args = {}) => {
|
|
4883
4897
|
const found = findOne(args, delegate, delegates);
|
|
4884
4898
|
if (!found)
|
|
4885
|
-
return Promise.reject(new
|
|
4899
|
+
return Promise.reject(new PrismaClientKnownRequestError(`No record was found for a query on ${delegate.model.name}`, {
|
|
4886
4900
|
code: "P2025",
|
|
4887
4901
|
clientVersion: version
|
|
4888
4902
|
}));
|
|
@@ -4930,7 +4944,7 @@ async function generateDMMF(schemaPath) {
|
|
|
4930
4944
|
}
|
|
4931
4945
|
|
|
4932
4946
|
// src/lib/prismock.ts
|
|
4933
|
-
function generateDelegates(options) {
|
|
4947
|
+
async function generateDelegates(options) {
|
|
4934
4948
|
const models = options.models ?? [];
|
|
4935
4949
|
const data = {};
|
|
4936
4950
|
const properties = {};
|
|
@@ -4956,18 +4970,19 @@ function generateDelegates(options) {
|
|
|
4956
4970
|
};
|
|
4957
4971
|
}, {}));
|
|
4958
4972
|
}
|
|
4959
|
-
models.
|
|
4973
|
+
await Promise.all(models.map(async (model) => {
|
|
4960
4974
|
const name = camelize(model.name);
|
|
4961
4975
|
data[name] = [];
|
|
4962
4976
|
properties[name] = {
|
|
4963
4977
|
increment: {}
|
|
4964
4978
|
};
|
|
4979
|
+
const delegate = await generateDelegate(model, data, name, properties, delegates, (items) => {
|
|
4980
|
+
Object.assign(data, { [name]: items });
|
|
4981
|
+
});
|
|
4965
4982
|
Object.assign(delegates, {
|
|
4966
|
-
[name]:
|
|
4967
|
-
Object.assign(data, { [name]: items });
|
|
4968
|
-
})
|
|
4983
|
+
[name]: delegate
|
|
4969
4984
|
});
|
|
4970
|
-
}, {});
|
|
4985
|
+
}, {}));
|
|
4971
4986
|
const clientDelegates = Object.entries(delegates).reduce((accumulator, [delegateKey, delegateValue]) => {
|
|
4972
4987
|
return {
|
|
4973
4988
|
...accumulator,
|
|
@@ -5115,25 +5130,23 @@ function applyQueryExtensions(client, extensions) {
|
|
|
5115
5130
|
}
|
|
5116
5131
|
|
|
5117
5132
|
// src/lib/extensions/result.ts
|
|
5118
|
-
|
|
5119
|
-
var import_library3 = require("@prisma/client/runtime/library");
|
|
5120
|
-
function buildResultExtendedModel(client, proxiedModels, modelExtensions, modelName) {
|
|
5133
|
+
function buildResultExtendedModel(client, proxiedModels, modelExtensions, modelName, PrismaDMMF) {
|
|
5121
5134
|
const model = proxiedModels[modelName] ?? client[modelName];
|
|
5122
5135
|
if (Object.keys(modelExtensions).length === 0) {
|
|
5123
5136
|
return model;
|
|
5124
5137
|
}
|
|
5125
5138
|
const singleResultActions = [
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5139
|
+
PrismaDMMF.ModelAction.findFirst,
|
|
5140
|
+
PrismaDMMF.ModelAction.findFirstOrThrow,
|
|
5141
|
+
PrismaDMMF.ModelAction.findUnique,
|
|
5142
|
+
PrismaDMMF.ModelAction.findUniqueOrThrow,
|
|
5143
|
+
PrismaDMMF.ModelAction.create,
|
|
5144
|
+
PrismaDMMF.ModelAction.update,
|
|
5145
|
+
PrismaDMMF.ModelAction.upsert
|
|
5133
5146
|
];
|
|
5134
5147
|
const multipleResultActions = [
|
|
5135
|
-
|
|
5136
|
-
|
|
5148
|
+
PrismaDMMF.ModelAction.findMany,
|
|
5149
|
+
PrismaDMMF.ModelAction.createManyAndReturn
|
|
5137
5150
|
];
|
|
5138
5151
|
const allResultActions = [...singleResultActions, ...multipleResultActions];
|
|
5139
5152
|
const proxyMethod = (actionName) => {
|
|
@@ -5208,7 +5221,7 @@ function buildResultExtendedModel(client, proxiedModels, modelExtensions, modelN
|
|
|
5208
5221
|
});
|
|
5209
5222
|
return proxiedModel;
|
|
5210
5223
|
}
|
|
5211
|
-
function applyResultExtensions(client, extensions) {
|
|
5224
|
+
function applyResultExtensions(client, extensions, datamodel, PrismaDMMF) {
|
|
5212
5225
|
if (typeof extensions === "function") {
|
|
5213
5226
|
const extendedClient = extensions(client);
|
|
5214
5227
|
return extendedClient;
|
|
@@ -5222,7 +5235,7 @@ function applyResultExtensions(client, extensions) {
|
|
|
5222
5235
|
if (!originalModel) {
|
|
5223
5236
|
return;
|
|
5224
5237
|
}
|
|
5225
|
-
const proxiedModel = buildResultExtendedModel(client, proxiedModels, resultExtendedModelMap[modelName], modelName);
|
|
5238
|
+
const proxiedModel = buildResultExtendedModel(client, proxiedModels, resultExtendedModelMap[modelName], modelName, PrismaDMMF);
|
|
5226
5239
|
proxiedModels[modelName] = proxiedModel;
|
|
5227
5240
|
return proxiedModel;
|
|
5228
5241
|
}
|
|
@@ -5236,12 +5249,12 @@ function applyResultExtensions(client, extensions) {
|
|
|
5236
5249
|
proxyModel(modelName);
|
|
5237
5250
|
}
|
|
5238
5251
|
if (hasAllModelsExtension && resultExtendedModelMap["$allModels"]) {
|
|
5239
|
-
for (const model of
|
|
5252
|
+
for (const model of datamodel.datamodel.models) {
|
|
5240
5253
|
const modelName = model.name;
|
|
5241
5254
|
if (!(modelName in client)) {
|
|
5242
5255
|
continue;
|
|
5243
5256
|
}
|
|
5244
|
-
const proxiedModel = buildResultExtendedModel(client, proxiedModels, resultExtendedModelMap["$allModels"], modelName);
|
|
5257
|
+
const proxiedModel = buildResultExtendedModel(client, proxiedModels, resultExtendedModelMap["$allModels"], modelName, PrismaDMMF);
|
|
5245
5258
|
proxiedModels[modelName] = proxiedModel;
|
|
5246
5259
|
}
|
|
5247
5260
|
}
|
|
@@ -5256,8 +5269,8 @@ function applyResultExtensions(client, extensions) {
|
|
|
5256
5269
|
}
|
|
5257
5270
|
|
|
5258
5271
|
// src/lib/extensions/index.ts
|
|
5259
|
-
function applyExtensions(client, extensions) {
|
|
5260
|
-
const resultExtended = applyResultExtensions(client, extensions);
|
|
5272
|
+
function applyExtensions(client, extensions, datamodel, PrismaDMMF) {
|
|
5273
|
+
const resultExtended = applyResultExtensions(client, extensions, datamodel, PrismaDMMF);
|
|
5261
5274
|
const queryExtended = applyQueryExtensions(resultExtended, extensions);
|
|
5262
5275
|
const modelExtended = applyModelExtensions(queryExtended, extensions);
|
|
5263
5276
|
return modelExtended;
|
|
@@ -5266,19 +5279,29 @@ function applyExtensions(client, extensions) {
|
|
|
5266
5279
|
// src/lib/client.ts
|
|
5267
5280
|
class Prismock {
|
|
5268
5281
|
schemaPath;
|
|
5282
|
+
datamodel;
|
|
5283
|
+
PrismaDMMF;
|
|
5269
5284
|
genPromise;
|
|
5270
5285
|
constructor(schemaPath) {
|
|
5271
5286
|
this.schemaPath = schemaPath;
|
|
5272
|
-
this.genPromise = this.generate()
|
|
5287
|
+
this.genPromise = this.generate().then(({ datamodel, PrismaDMMF }) => {
|
|
5288
|
+
this.datamodel = datamodel;
|
|
5289
|
+
this.PrismaDMMF = PrismaDMMF;
|
|
5290
|
+
return { datamodel, PrismaDMMF };
|
|
5291
|
+
});
|
|
5273
5292
|
}
|
|
5274
5293
|
static async create(schemaPath) {
|
|
5275
5294
|
const p = new Prismock(schemaPath);
|
|
5276
|
-
await p.genPromise;
|
|
5295
|
+
const { datamodel, PrismaDMMF } = await p.genPromise;
|
|
5296
|
+
p.datamodel = datamodel;
|
|
5297
|
+
p.PrismaDMMF = PrismaDMMF;
|
|
5277
5298
|
return p;
|
|
5278
5299
|
}
|
|
5279
5300
|
static async createDefault(schemaPath) {
|
|
5280
5301
|
const p = new Prismock(schemaPath);
|
|
5281
|
-
await p.genPromise;
|
|
5302
|
+
const { datamodel, PrismaDMMF } = await p.genPromise;
|
|
5303
|
+
p.datamodel = datamodel;
|
|
5304
|
+
p.PrismaDMMF = PrismaDMMF;
|
|
5282
5305
|
return p;
|
|
5283
5306
|
}
|
|
5284
5307
|
async reset() {
|
|
@@ -5286,7 +5309,7 @@ class Prismock {
|
|
|
5286
5309
|
}
|
|
5287
5310
|
async generate() {
|
|
5288
5311
|
const datamodel = await generateDMMF(this.schemaPath);
|
|
5289
|
-
const { delegates, setData, getData } = generateDelegates({
|
|
5312
|
+
const { delegates, setData, getData } = await generateDelegates({
|
|
5290
5313
|
models: [
|
|
5291
5314
|
...datamodel.datamodel.models
|
|
5292
5315
|
]
|
|
@@ -5297,6 +5320,8 @@ class Prismock {
|
|
|
5297
5320
|
else
|
|
5298
5321
|
Object.assign(this, { [key]: value });
|
|
5299
5322
|
});
|
|
5323
|
+
const { DMMF: PrismaDMMF } = await getGlobals();
|
|
5324
|
+
return { datamodel, PrismaDMMF };
|
|
5300
5325
|
}
|
|
5301
5326
|
async $connect() {
|
|
5302
5327
|
await this.genPromise;
|
|
@@ -5322,7 +5347,13 @@ class Prismock {
|
|
|
5322
5347
|
return Promise.resolve([]);
|
|
5323
5348
|
}
|
|
5324
5349
|
$extends(extensionDefs) {
|
|
5325
|
-
|
|
5350
|
+
if (!this.datamodel) {
|
|
5351
|
+
throw new Error("Datamodel not loaded");
|
|
5352
|
+
}
|
|
5353
|
+
if (!this.PrismaDMMF) {
|
|
5354
|
+
throw new Error("PrismaDMMF not loaded");
|
|
5355
|
+
}
|
|
5356
|
+
return applyExtensions(this, extensionDefs, this.datamodel, this.PrismaDMMF);
|
|
5326
5357
|
}
|
|
5327
5358
|
async $transaction(args) {
|
|
5328
5359
|
if (Array.isArray(args)) {
|