@pkgverse/prismock 2.0.0-beta.6 → 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,13 +663,15 @@ 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"));
674
+ var path = __toESM(require("path"));
673
675
  var import_internals = require("@prisma/internals");
674
676
 
675
677
  // src/lib/operations/aggregate.ts
@@ -4909,9 +4911,6 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
4909
4911
  return delegate;
4910
4912
  }
4911
4913
 
4912
- // src/lib/client.ts
4913
- var import_client2 = require("@prisma/client");
4914
-
4915
4914
  // src/lib/extensions/model.ts
4916
4915
  function applyModelExtensions(client, extensions) {
4917
4916
  if (typeof extensions === "function") {
@@ -5196,6 +5195,63 @@ function applyExtensions(client, extensions) {
5196
5195
  }
5197
5196
 
5198
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
+ }
5199
5255
  function generateClient(delegates, getData, setData) {
5200
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");
5201
5257
  const client = {
@@ -5221,61 +5277,25 @@ function generateClient(delegates, getData, setData) {
5221
5277
  }
5222
5278
  };
5223
5279
  }
5224
- function createPrismock(instance) {
5225
- return class Prismock {
5280
+ async function createPrismockClass(prismaModule) {
5281
+ const { Prisma: Prisma2 } = await import("@prisma/client");
5282
+ const c = class PrismockClientDefault extends Prismock {
5226
5283
  constructor() {
5227
- this.generate();
5228
- }
5229
- reset() {
5230
- this.generate();
5231
- }
5232
- generate() {
5233
- const { delegates, setData, getData } = generateDelegates({ models: instance.dmmf.datamodel.models });
5234
- Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5235
- if (key in this)
5236
- Object.assign(this[key], value);
5237
- else
5238
- Object.assign(this, { [key]: value });
5239
- });
5240
- }
5241
- async $connect() {
5242
- return Promise.resolve();
5243
- }
5244
- $disconnect() {
5245
- return Promise.resolve();
5246
- }
5247
- $on() {}
5248
- $use() {
5249
- return this;
5250
- }
5251
- $executeRaw() {
5252
- return Promise.resolve(0);
5253
- }
5254
- $executeRawUnsafe() {
5255
- return Promise.resolve(0);
5256
- }
5257
- $queryRaw() {
5258
- return Promise.resolve([]);
5259
- }
5260
- $queryRawUnsafe() {
5261
- return Promise.resolve([]);
5262
- }
5263
- $extends(extensionDefs) {
5264
- return applyExtensions(this, extensionDefs);
5265
- }
5266
- async $transaction(args) {
5267
- if (Array.isArray(args)) {
5268
- return Promise.all(args);
5269
- }
5270
- return args(this);
5284
+ super(Prisma2);
5271
5285
  }
5272
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);
5273
5294
  }
5274
- var PrismockClient = createPrismock(import_client2.Prisma);
5275
5295
 
5276
5296
  // src/lib/prismock.ts
5277
5297
  async function generateDMMF(schemaPath) {
5278
- const pathToModule = schemaPath ?? require.resolve(import_path.default.resolve(process.cwd(), "prisma/schema.prisma"));
5298
+ const pathToModule = schemaPath ?? require.resolve(path.resolve(process.cwd(), "prisma/schema.prisma"));
5279
5299
  const datamodel = await import_internals.getSchema(pathToModule);
5280
5300
  return import_internals.getDMMF({ datamodel });
5281
5301
  }
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,7 +628,7 @@ var require_src = __commonJS((exports, module) => {
612
628
  });
613
629
 
614
630
  // src/lib/prismock.ts
615
- import path from "path";
631
+ import * as path from "path";
616
632
  import { getDMMF, getGenerator, getSchema } from "@prisma/internals";
617
633
 
618
634
  // src/lib/operations/aggregate.ts
@@ -4855,9 +4871,6 @@ function generateDelegate(model, data, name, properties, delegates, onChange) {
4855
4871
  return delegate;
4856
4872
  }
4857
4873
 
4858
- // src/lib/client.ts
4859
- import { Prisma as Prisma2 } from "@prisma/client";
4860
-
4861
4874
  // src/lib/extensions/model.ts
4862
4875
  function applyModelExtensions(client, extensions) {
4863
4876
  if (typeof extensions === "function") {
@@ -5142,6 +5155,63 @@ function applyExtensions(client, extensions) {
5142
5155
  }
5143
5156
 
5144
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
+ }
5145
5215
  function generateClient(delegates, getData, setData) {
5146
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");
5147
5217
  const client = {
@@ -5167,57 +5237,21 @@ function generateClient(delegates, getData, setData) {
5167
5237
  }
5168
5238
  };
5169
5239
  }
5170
- function createPrismock(instance) {
5171
- return class Prismock {
5240
+ async function createPrismockClass(prismaModule) {
5241
+ const { Prisma: Prisma2 } = await import("@prisma/client");
5242
+ const c = class PrismockClientDefault extends Prismock {
5172
5243
  constructor() {
5173
- this.generate();
5174
- }
5175
- reset() {
5176
- this.generate();
5177
- }
5178
- generate() {
5179
- const { delegates, setData, getData } = generateDelegates({ models: instance.dmmf.datamodel.models });
5180
- Object.entries({ ...delegates, setData, getData }).forEach(([key, value]) => {
5181
- if (key in this)
5182
- Object.assign(this[key], value);
5183
- else
5184
- Object.assign(this, { [key]: value });
5185
- });
5186
- }
5187
- async $connect() {
5188
- return Promise.resolve();
5189
- }
5190
- $disconnect() {
5191
- return Promise.resolve();
5192
- }
5193
- $on() {}
5194
- $use() {
5195
- return this;
5196
- }
5197
- $executeRaw() {
5198
- return Promise.resolve(0);
5199
- }
5200
- $executeRawUnsafe() {
5201
- return Promise.resolve(0);
5202
- }
5203
- $queryRaw() {
5204
- return Promise.resolve([]);
5205
- }
5206
- $queryRawUnsafe() {
5207
- return Promise.resolve([]);
5208
- }
5209
- $extends(extensionDefs) {
5210
- return applyExtensions(this, extensionDefs);
5211
- }
5212
- async $transaction(args) {
5213
- if (Array.isArray(args)) {
5214
- return Promise.all(args);
5215
- }
5216
- return args(this);
5244
+ super(Prisma2);
5217
5245
  }
5218
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);
5219
5254
  }
5220
- var PrismockClient = createPrismock(Prisma2);
5221
5255
 
5222
5256
  // src/lib/prismock.ts
5223
5257
  async function generateDMMF(schemaPath) {
@@ -5282,6 +5316,8 @@ function generateDelegates(options) {
5282
5316
  export {
5283
5317
  generatePrismockSync,
5284
5318
  generatePrismock,
5319
+ createPrismockClient,
5320
+ createPrismockClass,
5285
5321
  createPrismock,
5286
- PrismockClient
5322
+ Prismock
5287
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkgverse/prismock",
3
- "version": "2.0.0-beta.6",
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"
@@ -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}",