@pkgverse/prismock 2.0.0-beta.5 → 2.0.0-beta.7

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/index.cjs CHANGED
@@ -663,16 +663,16 @@ var exports_src = {};
663
663
  __export(exports_src, {
664
664
  generatePrismockSync: () => generatePrismockSync,
665
665
  generatePrismock: () => generatePrismock,
666
+ createPrismockClient: () => createPrismockClient,
667
+ createPrismockClass: () => createPrismockClass,
666
668
  createPrismock: () => createPrismock,
667
- PrismockClient: () => PrismockClient
669
+ Prismock: () => Prismock
668
670
  });
669
671
  module.exports = __toCommonJS(exports_src);
670
672
 
671
673
  // src/lib/prismock.ts
672
- var import_path = __toESM(require("path"));
673
- var import_getDmmf = require("@prisma/internals/dist/engine-commands/getDmmf");
674
- var import_getGenerators = require("@prisma/internals/dist/get-generators/getGenerators");
675
- var import_getSchema = require("@prisma/internals/dist/cli/getSchema");
674
+ var path = __toESM(require("path"));
675
+ var import_internals = require("@prisma/internals");
676
676
 
677
677
  // src/lib/operations/aggregate.ts
678
678
  function aggregate(args, items) {
@@ -4911,9 +4911,6 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
4911
4911
  return delegate;
4912
4912
  }
4913
4913
 
4914
- // src/lib/client.ts
4915
- var import_client2 = require("@prisma/client");
4916
-
4917
4914
  // src/lib/extensions/model.ts
4918
4915
  function applyModelExtensions(client, extensions) {
4919
4916
  if (typeof extensions === "function") {
@@ -5198,6 +5195,63 @@ function applyExtensions(client, extensions) {
5198
5195
  }
5199
5196
 
5200
5197
  // src/lib/client.ts
5198
+ class Prismock {
5199
+ __prismaModule;
5200
+ constructor(prismaModule) {
5201
+ this.__prismaModule = prismaModule;
5202
+ this.generate();
5203
+ }
5204
+ static async create(prismaModule) {
5205
+ return new Prismock(prismaModule);
5206
+ }
5207
+ static async createDefault() {
5208
+ const { Prisma: Prisma2, PrismaClient } = await import("@prisma/client");
5209
+ return new Prismock(Prisma2);
5210
+ }
5211
+ reset() {
5212
+ this.generate();
5213
+ }
5214
+ generate() {
5215
+ const { delegates, setData, getData } = generateDelegates({ models: this.__prismaModule.dmmf.datamodel.models });
5216
+ Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5217
+ if (key in this)
5218
+ Object.assign(this[key], value);
5219
+ else
5220
+ Object.assign(this, { [key]: value });
5221
+ });
5222
+ }
5223
+ async $connect() {
5224
+ return Promise.resolve();
5225
+ }
5226
+ $disconnect() {
5227
+ return Promise.resolve();
5228
+ }
5229
+ $on() {}
5230
+ $use() {
5231
+ return this;
5232
+ }
5233
+ $executeRaw() {
5234
+ return Promise.resolve(0);
5235
+ }
5236
+ $executeRawUnsafe() {
5237
+ return Promise.resolve(0);
5238
+ }
5239
+ $queryRaw() {
5240
+ return Promise.resolve([]);
5241
+ }
5242
+ $queryRawUnsafe() {
5243
+ return Promise.resolve([]);
5244
+ }
5245
+ $extends(extensionDefs) {
5246
+ return applyExtensions(this, extensionDefs);
5247
+ }
5248
+ async $transaction(args) {
5249
+ if (Array.isArray(args)) {
5250
+ return Promise.all(args);
5251
+ }
5252
+ return args(this);
5253
+ }
5254
+ }
5201
5255
  function generateClient(delegates, getData, setData) {
5202
5256
  console.log("Deprecation notice: generatePrismock and generatePrismockSync should be replaced with PrismockClient. See https://github.com/morintd/prismock/blob/master/docs/generate-prismock-deprecated.md");
5203
5257
  const client = {
@@ -5223,63 +5277,27 @@ function generateClient(delegates, getData, setData) {
5223
5277
  }
5224
5278
  };
5225
5279
  }
5226
- function createPrismock(instance) {
5227
- return class Prismock {
5280
+ async function createPrismockClass(prismaModule) {
5281
+ const { Prisma: Prisma2 } = await import("@prisma/client");
5282
+ const c = class PrismockClientDefault extends Prismock {
5228
5283
  constructor() {
5229
- this.generate();
5230
- }
5231
- reset() {
5232
- this.generate();
5233
- }
5234
- generate() {
5235
- const { delegates, setData, getData } = generateDelegates({ models: instance.dmmf.datamodel.models });
5236
- Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5237
- if (key in this)
5238
- Object.assign(this[key], value);
5239
- else
5240
- Object.assign(this, { [key]: value });
5241
- });
5242
- }
5243
- async $connect() {
5244
- return Promise.resolve();
5245
- }
5246
- $disconnect() {
5247
- return Promise.resolve();
5248
- }
5249
- $on() {}
5250
- $use() {
5251
- return this;
5252
- }
5253
- $executeRaw() {
5254
- return Promise.resolve(0);
5255
- }
5256
- $executeRawUnsafe() {
5257
- return Promise.resolve(0);
5258
- }
5259
- $queryRaw() {
5260
- return Promise.resolve([]);
5261
- }
5262
- $queryRawUnsafe() {
5263
- return Promise.resolve([]);
5264
- }
5265
- $extends(extensionDefs) {
5266
- return applyExtensions(this, extensionDefs);
5267
- }
5268
- async $transaction(args) {
5269
- if (Array.isArray(args)) {
5270
- return Promise.all(args);
5271
- }
5272
- return args(this);
5284
+ super(Prisma2);
5273
5285
  }
5274
5286
  };
5287
+ return c;
5288
+ }
5289
+ async function createPrismock() {
5290
+ return await Prismock.createDefault();
5291
+ }
5292
+ async function createPrismockClient(prismaModule) {
5293
+ return await Prismock.create(prismaModule);
5275
5294
  }
5276
- var PrismockClient = createPrismock(import_client2.Prisma);
5277
5295
 
5278
5296
  // src/lib/prismock.ts
5279
5297
  async function generateDMMF(schemaPath) {
5280
- const pathToModule = schemaPath ?? require.resolve(import_path.default.resolve(process.cwd(), "prisma/schema.prisma"));
5281
- const datamodel = await import_getSchema.getSchema(pathToModule);
5282
- return import_getDmmf.getDMMF({ datamodel });
5298
+ const pathToModule = schemaPath ?? require.resolve(path.resolve(process.cwd(), "prisma/schema.prisma"));
5299
+ const datamodel = await import_internals.getSchema(pathToModule);
5300
+ return import_internals.getDMMF({ datamodel });
5283
5301
  }
5284
5302
  async function generatePrismock(options = {}) {
5285
5303
  const schema = await generateDMMF(options.schemaPath);
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { generatePrismock, generatePrismockSync } from './lib/prismock';
2
- export { createPrismock, PrismockClient } from './lib/client';
2
+ export { createPrismock, createPrismockClient, Prismock, type PrismaModule, createPrismockClass } from './lib/client';
package/dist/index.mjs CHANGED
@@ -1,4 +1,20 @@
1
1
  import { createRequire } from "node:module";
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __toESM = (mod, isNodeMode, target) => {
8
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
9
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
+ for (let key of __getOwnPropNames(mod))
11
+ if (!__hasOwnProp.call(to, key))
12
+ __defProp(to, key, {
13
+ get: () => mod[key],
14
+ enumerable: true
15
+ });
16
+ return to;
17
+ };
2
18
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3
19
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
4
20
 
@@ -612,10 +628,8 @@ var require_src = __commonJS((exports, module) => {
612
628
  });
613
629
 
614
630
  // src/lib/prismock.ts
615
- import path from "path";
616
- import { getDMMF } from "@prisma/internals/dist/engine-commands/getDmmf";
617
- import { getGenerator } from "@prisma/internals/dist/get-generators/getGenerators";
618
- import { getSchema } from "@prisma/internals/dist/cli/getSchema";
631
+ import * as path from "path";
632
+ import { getDMMF, getGenerator, getSchema } from "@prisma/internals";
619
633
 
620
634
  // src/lib/operations/aggregate.ts
621
635
  function aggregate(args, items) {
@@ -4857,9 +4871,6 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
4857
4871
  return delegate;
4858
4872
  }
4859
4873
 
4860
- // src/lib/client.ts
4861
- import { Prisma as Prisma2 } from "@prisma/client";
4862
-
4863
4874
  // src/lib/extensions/model.ts
4864
4875
  function applyModelExtensions(client, extensions) {
4865
4876
  if (typeof extensions === "function") {
@@ -5144,6 +5155,63 @@ function applyExtensions(client, extensions) {
5144
5155
  }
5145
5156
 
5146
5157
  // src/lib/client.ts
5158
+ class Prismock {
5159
+ __prismaModule;
5160
+ constructor(prismaModule) {
5161
+ this.__prismaModule = prismaModule;
5162
+ this.generate();
5163
+ }
5164
+ static async create(prismaModule) {
5165
+ return new Prismock(prismaModule);
5166
+ }
5167
+ static async createDefault() {
5168
+ const { Prisma: Prisma2, PrismaClient } = await import("@prisma/client");
5169
+ return new Prismock(Prisma2);
5170
+ }
5171
+ reset() {
5172
+ this.generate();
5173
+ }
5174
+ generate() {
5175
+ const { delegates, setData, getData } = generateDelegates({ models: this.__prismaModule.dmmf.datamodel.models });
5176
+ Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5177
+ if (key in this)
5178
+ Object.assign(this[key], value);
5179
+ else
5180
+ Object.assign(this, { [key]: value });
5181
+ });
5182
+ }
5183
+ async $connect() {
5184
+ return Promise.resolve();
5185
+ }
5186
+ $disconnect() {
5187
+ return Promise.resolve();
5188
+ }
5189
+ $on() {}
5190
+ $use() {
5191
+ return this;
5192
+ }
5193
+ $executeRaw() {
5194
+ return Promise.resolve(0);
5195
+ }
5196
+ $executeRawUnsafe() {
5197
+ return Promise.resolve(0);
5198
+ }
5199
+ $queryRaw() {
5200
+ return Promise.resolve([]);
5201
+ }
5202
+ $queryRawUnsafe() {
5203
+ return Promise.resolve([]);
5204
+ }
5205
+ $extends(extensionDefs) {
5206
+ return applyExtensions(this, extensionDefs);
5207
+ }
5208
+ async $transaction(args) {
5209
+ if (Array.isArray(args)) {
5210
+ return Promise.all(args);
5211
+ }
5212
+ return args(this);
5213
+ }
5214
+ }
5147
5215
  function generateClient(delegates, getData, setData) {
5148
5216
  console.log("Deprecation notice: generatePrismock and generatePrismockSync should be replaced with PrismockClient. See https://github.com/morintd/prismock/blob/master/docs/generate-prismock-deprecated.md");
5149
5217
  const client = {
@@ -5169,57 +5237,21 @@ function generateClient(delegates, getData, setData) {
5169
5237
  }
5170
5238
  };
5171
5239
  }
5172
- function createPrismock(instance) {
5173
- return class Prismock {
5240
+ async function createPrismockClass(prismaModule) {
5241
+ const { Prisma: Prisma2 } = await import("@prisma/client");
5242
+ const c = class PrismockClientDefault extends Prismock {
5174
5243
  constructor() {
5175
- this.generate();
5176
- }
5177
- reset() {
5178
- this.generate();
5179
- }
5180
- generate() {
5181
- const { delegates, setData, getData } = generateDelegates({ models: instance.dmmf.datamodel.models });
5182
- Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5183
- if (key in this)
5184
- Object.assign(this[key], value);
5185
- else
5186
- Object.assign(this, { [key]: value });
5187
- });
5188
- }
5189
- async $connect() {
5190
- return Promise.resolve();
5191
- }
5192
- $disconnect() {
5193
- return Promise.resolve();
5194
- }
5195
- $on() {}
5196
- $use() {
5197
- return this;
5198
- }
5199
- $executeRaw() {
5200
- return Promise.resolve(0);
5201
- }
5202
- $executeRawUnsafe() {
5203
- return Promise.resolve(0);
5204
- }
5205
- $queryRaw() {
5206
- return Promise.resolve([]);
5207
- }
5208
- $queryRawUnsafe() {
5209
- return Promise.resolve([]);
5210
- }
5211
- $extends(extensionDefs) {
5212
- return applyExtensions(this, extensionDefs);
5213
- }
5214
- async $transaction(args) {
5215
- if (Array.isArray(args)) {
5216
- return Promise.all(args);
5217
- }
5218
- return args(this);
5244
+ super(Prisma2);
5219
5245
  }
5220
5246
  };
5247
+ return c;
5248
+ }
5249
+ async function createPrismock() {
5250
+ return await Prismock.createDefault();
5251
+ }
5252
+ async function createPrismockClient(prismaModule) {
5253
+ return await Prismock.create(prismaModule);
5221
5254
  }
5222
- var PrismockClient = createPrismock(Prisma2);
5223
5255
 
5224
5256
  // src/lib/prismock.ts
5225
5257
  async function generateDMMF(schemaPath) {
@@ -5284,6 +5316,8 @@ function generateDelegates(options) {
5284
5316
  export {
5285
5317
  generatePrismockSync,
5286
5318
  generatePrismock,
5319
+ createPrismockClient,
5320
+ createPrismockClass,
5287
5321
  createPrismock,
5288
- PrismockClient
5322
+ Prismock
5289
5323
  };
@@ -1,19 +1,39 @@
1
- import { type PrismaClient } from '@prisma/client';
2
- import * as runtime from '@prisma/client/runtime/library';
1
+ import type { PrismaClient } from '@prisma/client';
2
+ import type * as runtime from '@prisma/client/runtime/library';
3
3
  import { Delegate } from './delegate';
4
4
  import { Data } from './prismock';
5
+ import { type ExtensionsDefinition } from './extensions';
5
6
  type GetData = () => Data;
6
7
  type SetData = (data: Data) => void;
7
- interface PrismockData {
8
+ export interface PrismockData {
8
9
  getData: GetData;
9
10
  setData: SetData;
10
11
  reset: () => void;
11
12
  }
12
13
  export type PrismockClientType<T = PrismaClient> = T & PrismockData;
14
+ export declare class Prismock<PC = PrismaClient> {
15
+ __prismaModule: PrismaModule<PC>;
16
+ protected constructor(prismaModule: PrismaModule<PC>);
17
+ static create<PC = PrismaClient>(prismaModule: PrismaModule<PC>): Promise<PrismockClientType<PC>>;
18
+ static createDefault(): Promise<PrismaClient<import(".prisma").Prisma.PrismaClientOptions, never, runtime.DefaultArgs> & PrismockData>;
19
+ reset(): void;
20
+ private generate;
21
+ $connect(): Promise<void>;
22
+ $disconnect(): Promise<void>;
23
+ $on(): void;
24
+ $use(): this;
25
+ $executeRaw(): Promise<number>;
26
+ $executeRawUnsafe(): Promise<number>;
27
+ $queryRaw(): Promise<never[]>;
28
+ $queryRawUnsafe(): Promise<never[]>;
29
+ $extends(extensionDefs: ExtensionsDefinition): PrismaClient<import(".prisma").Prisma.PrismaClientOptions, never, runtime.DefaultArgs>;
30
+ $transaction(args: any): Promise<any>;
31
+ }
13
32
  export declare function generateClient<T = PrismaClient>(delegates: Record<string, Delegate>, getData: GetData, setData: SetData): PrismockClientType<T>;
14
- type PrismaModule = {
33
+ export type PrismaModule<PC = PrismaClient> = {
15
34
  dmmf: runtime.BaseDMMF;
16
35
  };
17
- export declare function createPrismock(instance: PrismaModule): typeof PrismaClient & PrismockData;
18
- export declare const PrismockClient: typeof PrismaClient & PrismockData;
36
+ export declare function createPrismockClass(prismaModule?: PrismaModule): Promise<typeof PrismaClient>;
37
+ export declare function createPrismock(): Promise<PrismaClient<import(".prisma").Prisma.PrismaClientOptions, never, runtime.DefaultArgs> & PrismockData>;
38
+ export declare function createPrismockClient<PC = PrismaClient>(prismaModule: PrismaModule<PC>): Promise<PrismockClientType<PC>>;
19
39
  export {};
@@ -1,3 +1,3 @@
1
- import { Prisma, PrismaClient } from "@prisma/client";
1
+ import { Prisma, type PrismaClient } from "@prisma/client";
2
2
  import { type DefaultArgs, type ExtendsHook } from "@prisma/client/runtime/library";
3
3
  export declare function applyResultExtensions(client: PrismaClient, extensions: Parameters<ExtendsHook<"define", Prisma.TypeMapCb, DefaultArgs>>[0]): PrismaClient;
@@ -1,6 +1,6 @@
1
1
  import { PrismaClient } from '@prisma/client';
2
2
  import { DMMF } from '@prisma/generator-helper';
3
- import { Generator } from '@prisma/internals/dist/Generator';
3
+ import { type Generator } from '@prisma/internals';
4
4
  import { Delegate, DelegateProperties, Item } from './delegate';
5
5
  import { PrismockClientType } from './client';
6
6
  type Options = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkgverse/prismock",
3
- "version": "2.0.0-beta.5",
3
+ "version": "2.0.0-beta.7",
4
4
  "description": "A mock for PrismaClient, dedicated to unit testing.",
5
5
  "repository": {
6
6
  "url": "https://github.com/JQuezada0/prismock"
@@ -13,7 +13,7 @@
13
13
  "types": "./dist/index.d.ts",
14
14
  "module": "./dist/index.mjs",
15
15
  "exports": {
16
- "./": {
16
+ ".": {
17
17
  "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.mjs",
19
19
  "require": "./dist/index.cjs",
@@ -35,10 +35,10 @@
35
35
  "build:module": "bun build src/index.ts --outfile=dist/index.mjs --format=esm --target=node --external=@prisma/*",
36
36
  "build:types": "tsgo -p tsconfig.json",
37
37
  "lint": "eslint",
38
- "test": "jest",
38
+ "test": "vitest",
39
39
  "db:init": "prisma migrate dev --name init",
40
40
  "db:reset": "bun prisma migrate reset -f",
41
- "test:coverage": "jest --coverage"
41
+ "test:coverage": "vitest --coverage"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@commitlint/cli": "19.8.1",
@@ -50,11 +50,11 @@
50
50
  "@semantic-release/github": "11.0.5",
51
51
  "@semantic-release/npm": "12.0.2",
52
52
  "@semantic-release/release-notes-generator": "14.1.0",
53
- "@types/jest": "30.0.0",
54
53
  "@types/node": "22.18.1",
55
54
  "@typescript-eslint/eslint-plugin": "8.43.0",
56
55
  "@typescript-eslint/parser": "8.43.0",
57
56
  "@typescript/native-preview": "7.0.0-dev.20250910.1",
57
+ "@vitest/coverage-v8": "4.0.14",
58
58
  "cspell": "9.2.1",
59
59
  "cz-conventional-changelog": "3.3.0",
60
60
  "dotenv": "17.2.2",
@@ -62,7 +62,6 @@
62
62
  "eslint-config-prettier": "10.1.8",
63
63
  "eslint-config-standard": "17.1.0",
64
64
  "eslint-plugin-import": "2.32.0",
65
- "eslint-plugin-jest": "29.1.0",
66
65
  "eslint-plugin-n": "17.21.3",
67
66
  "eslint-plugin-prettier": "5.5.4",
68
67
  "eslint-plugin-promise": "7.2.1",
@@ -71,18 +70,17 @@
71
70
  "fp-ts": "2.16.11",
72
71
  "fs-jetpack": "5.1.0",
73
72
  "husky": "9.1.7",
74
- "jest": "30.1.3",
75
- "jest-mock-extended": "4.0.0",
76
73
  "lint-staged": "16.1.6",
77
74
  "prettier": "2.8.8",
78
75
  "prisma": "5.22.0",
79
76
  "release-it": "19.0.6",
80
77
  "semantic-release": "24.2.7",
81
- "ts-jest": "29.4.1",
82
78
  "ts-node": "10.9.2",
83
79
  "ts-toolbelt": "9.6.0",
84
80
  "tsx": "4.20.6",
85
- "typescript-eslint": "8.46.0"
81
+ "typescript-eslint": "8.46.0",
82
+ "vitest": "4.0.13",
83
+ "vitest-mock-extended": "3.1.0"
86
84
  },
87
85
  "files": [
88
86
  "dist/**/*.{cjs,mjs,d.ts}",