@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/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 import_library.Decimal(field.default);
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
- var import_library2 = require("@prisma/client/runtime/library");
4807
- function generateDelegate(model, data, name, properties, delegates, onChange) {
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 import_library2.PrismaClientKnownRequestError(`No record was found for a delete on ${delegate.model.name}`, {
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 import_library2.PrismaClientKnownRequestError(`No record was found for an update on ${delegate.model.name}`, {
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 import_library2.PrismaClientKnownRequestError(`No record was found for a query on ${delegate.model.name}`, {
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 import_library2.PrismaClientKnownRequestError(`No record was found for a query on ${delegate.model.name}`, {
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.forEach((model) => {
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]: generateDelegate(model, data, name, properties, delegates, (items) => {
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
- var import_client = require("@prisma/client");
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
- import_library3.DMMF.ModelAction.findFirst,
5127
- import_library3.DMMF.ModelAction.findFirstOrThrow,
5128
- import_library3.DMMF.ModelAction.findUnique,
5129
- import_library3.DMMF.ModelAction.findUniqueOrThrow,
5130
- import_library3.DMMF.ModelAction.create,
5131
- import_library3.DMMF.ModelAction.update,
5132
- import_library3.DMMF.ModelAction.upsert
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
- import_library3.DMMF.ModelAction.findMany,
5136
- import_library3.DMMF.ModelAction.createManyAndReturn
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 import_client.Prisma.dmmf.datamodel.models) {
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
- return applyExtensions(this, extensionDefs);
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)) {