vite-plugin-mock-dev-server 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -40,7 +40,7 @@
40
40
  - 🍕 Support `viteConfig.define` in mock file
41
41
  - 📤 Support `multipart` content-type,mock upload file.
42
42
  - 🌈 Support `vite preview` mode
43
- - 🗂 Support for building small mock services that can be deployed independently
43
+ - 🗂 Support for building independently deployed mock services
44
44
 
45
45
 
46
46
  ## Documentation
@@ -171,7 +171,7 @@ export default defineConfig({
171
171
 
172
172
  **Type:** `boolean`
173
173
 
174
- When mock resources are hot updated, only the data content is updated, but the page is not refreshed by default.
174
+ When mock resources are hot reload, only the data content is updated, but the page is not refreshed by default.
175
175
  Turn this on when you want to refresh the page every time you modify the mock file.
176
176
 
177
177
 
package/dist/index.cjs CHANGED
@@ -33,7 +33,8 @@ __export(src_exports, {
33
33
  baseMiddleware: () => baseMiddleware,
34
34
  default: () => src_default,
35
35
  defineMock: () => defineMock,
36
- mockDevServerPlugin: () => mockDevServerPlugin
36
+ mockDevServerPlugin: () => mockDevServerPlugin,
37
+ transformMockData: () => transformMockData
37
38
  });
38
39
  module.exports = __toCommonJS(src_exports);
39
40
 
@@ -52,7 +53,7 @@ var import_vite = require("vite");
52
53
 
53
54
  // package.json
54
55
  var name = "vite-plugin-mock-dev-server";
55
- var version = "1.0.2";
56
+ var version = "1.0.4";
56
57
 
57
58
  // src/esbuildPlugin.ts
58
59
  var import_promises = __toESM(require("fs/promises"), 1);
@@ -269,7 +270,7 @@ async function generateMockEntryCode(cwd, include, exclude) {
269
270
  resolve: false
270
271
  });
271
272
  const mockFiles = includePaths.filter(includeFilter);
272
- let importers = "import { parse as urlParse } from 'node:url';\n";
273
+ let importers = "";
273
274
  let exporters = "";
274
275
  mockFiles.forEach((filepath, index) => {
275
276
  const file = import_node_path3.default.join(cwd, filepath);
@@ -277,42 +278,15 @@ async function generateMockEntryCode(cwd, include, exclude) {
277
278
  `;
278
279
  exporters += `m${index}, `;
279
280
  });
280
- return `${importers}const mockData = [${exporters}];
281
-
282
- const data = [];
283
- const mocks = {};
284
- mockData.forEach(mock => {
285
- Object.keys(mock).forEach(key => {
286
- const mockData = mock[key];
287
- if (Array.isArray(mockData)) {
288
- data.push(...mockData);
289
- } else {
290
- if (typeof mockData === 'object' && Object.prototype.hasOwnProperty.call(mockData, 'url')) {
291
- data.push(mockData);
292
- }
293
- }
294
- })
295
- })
296
- data
297
- .filter((mock) => mock.enabled || typeof mock.enabled === "undefined")
298
- .forEach((mock) => {
299
- const { pathname, query } = urlParse(mock.url, true);
300
- if (!mocks[pathname]) {
301
- mocks[pathname] = [];
302
- }
303
- mock.url = pathname;
304
- const list = mocks[pathname];
305
- if (query && typeof mock.validator === 'function') {
306
- mock.validator ??= {};
307
- mock.validator.query = Object.assign(
308
- query,
309
- mock.validator.query || {},
310
- );
311
- }
312
- mock.validator ? list.unshift(mock) : list.push(mock);
313
- });
314
- export default mocks;
315
- `;
281
+ return `import { transformMockData } from 'vite-plugin-mock-dev-server';
282
+ ${importers}
283
+ const exporters = [${exporters}];
284
+ const mockList = exporters.map((raw) => raw && raw.default
285
+ ? raw.default
286
+ : Object.keys(raw || {}).map((key) => raw[key])
287
+ )
288
+ export default transformMockData(mockList);
289
+ `;
316
290
  }
317
291
  async function buildMockEntry(inputFile, define) {
318
292
  var _a;
@@ -520,12 +494,42 @@ var import_node_events = __toESM(require("events"), 1);
520
494
  var import_node_fs3 = __toESM(require("fs"), 1);
521
495
  var import_node_module = require("module");
522
496
  var import_node_path4 = __toESM(require("path"), 1);
523
- var import_node_url3 = require("url");
497
+ var import_node_url4 = require("url");
524
498
  var import_chokidar = __toESM(require("chokidar"), 1);
525
499
  var import_esbuild2 = require("esbuild");
526
500
  var import_fast_glob2 = __toESM(require("fast-glob"), 1);
527
501
  var import_json52 = __toESM(require("json5"), 1);
528
502
  var import_vite2 = require("vite");
503
+
504
+ // src/transform.ts
505
+ var import_node_url3 = require("url");
506
+ function transformMockData(mockList) {
507
+ const list = [];
508
+ for (const [, handle] of mockList.entries()) {
509
+ if (handle) {
510
+ isArray(handle) ? list.push(...handle) : list.push(handle);
511
+ }
512
+ }
513
+ const mocks = {};
514
+ list.filter(
515
+ (mock) => (mock.enabled || typeof mock.enabled === "undefined") && mock.url
516
+ ).forEach((mock) => {
517
+ const { pathname, query } = (0, import_node_url3.parse)(mock.url, true);
518
+ const list2 = mocks[pathname] ?? (mocks[pathname] = []);
519
+ const current = Object.assign({}, mock, { url: pathname });
520
+ if (query && !isFunction(current.validator)) {
521
+ current.validator = Object.assign({}, current.validator || {});
522
+ current.validator.query = Object.assign(
523
+ query,
524
+ current.validator.query || {}
525
+ );
526
+ }
527
+ current.validator ? list2.unshift(current) : list2.push(current);
528
+ });
529
+ return mocks;
530
+ }
531
+
532
+ // src/MockLoader.ts
529
533
  var _dirname = getDirname(importMetaUrl);
530
534
  var _require = (0, import_node_module.createRequire)(_dirname);
531
535
  var _MockLoader = class extends import_node_events.default {
@@ -636,28 +640,7 @@ var _MockLoader = class extends import_node_events.default {
636
640
  (_b = this.depsWatcher) == null ? void 0 : _b.close();
637
641
  }
638
642
  updateMockList() {
639
- const mockList = [];
640
- for (const [, handle] of this.moduleCache.entries()) {
641
- isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
642
- }
643
- const mocks = {};
644
- mockList.filter((mock) => mock.enabled || typeof mock.enabled === "undefined").forEach((mock) => {
645
- const { pathname, query } = (0, import_node_url3.parse)(mock.url, true);
646
- if (!mocks[pathname]) {
647
- mocks[pathname] = [];
648
- }
649
- mock.url = pathname;
650
- const list = mocks[pathname];
651
- if (query && !isFunction(mock.validator)) {
652
- mock.validator ?? (mock.validator = {});
653
- mock.validator.query = Object.assign(
654
- query,
655
- mock.validator.query || {}
656
- );
657
- }
658
- mock.validator ? list.unshift(mock) : list.push(mock);
659
- });
660
- this._mockData = mocks;
643
+ this._mockData = transformMockData(this.moduleCache);
661
644
  }
662
645
  updateModuleDeps(filepath, deps) {
663
646
  Object.keys(deps).forEach((mPath) => {
@@ -714,7 +697,7 @@ var _MockLoader = class extends import_node_events.default {
714
697
  if (isESM) {
715
698
  const fileBase = `${filepath}.timestamp-${Date.now()}`;
716
699
  const fileNameTmp = `${fileBase}.mjs`;
717
- const fileUrl = `${(0, import_node_url3.pathToFileURL)(fileBase)}.mjs`;
700
+ const fileUrl = `${(0, import_node_url4.pathToFileURL)(fileBase)}.mjs`;
718
701
  await import_node_fs3.default.promises.writeFile(fileNameTmp, code, "utf8");
719
702
  try {
720
703
  return await import(fileUrl);
@@ -904,5 +887,6 @@ var src_default = mockDevServerPlugin;
904
887
  0 && (module.exports = {
905
888
  baseMiddleware,
906
889
  defineMock,
907
- mockDevServerPlugin
890
+ mockDevServerPlugin,
891
+ transformMockData
908
892
  });
package/dist/index.d.ts CHANGED
@@ -158,7 +158,7 @@ declare function mockDevServerPlugin({ prefix, include, exclude, reload, formida
158
158
  /**
159
159
  * mock config helper
160
160
  *
161
- * mock配置帮助函数
161
+ * mock配置辅助函数
162
162
  *
163
163
  * @param config
164
164
  * @example
@@ -217,4 +217,6 @@ interface BaseMiddlewareOptions {
217
217
  }
218
218
  declare function baseMiddleware(mockLoader: MockLoader, { formidableOptions, proxies }: BaseMiddlewareOptions): Connect.NextHandleFunction;
219
219
 
220
- export { BaseMiddlewareOptions, FormidableFile, MockOptions, MockOptionsItem, MockServerPluginOptions, baseMiddleware, mockDevServerPlugin as default, defineMock, mockDevServerPlugin };
220
+ declare function transformMockData(mockList: Map<string, MockOptionsItem | MockOptions> | (MockOptionsItem | MockOptions)[]): Record<string, MockOptions>;
221
+
222
+ export { BaseMiddlewareOptions, FormidableFile, MockOptions, MockOptionsItem, MockServerPluginOptions, baseMiddleware, mockDevServerPlugin as default, defineMock, mockDevServerPlugin, transformMockData };
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { createFilter } from "vite";
9
9
 
10
10
  // package.json
11
11
  var name = "vite-plugin-mock-dev-server";
12
- var version = "1.0.2";
12
+ var version = "1.0.4";
13
13
 
14
14
  // src/esbuildPlugin.ts
15
15
  import fsp from "fs/promises";
@@ -226,7 +226,7 @@ async function generateMockEntryCode(cwd, include, exclude) {
226
226
  resolve: false
227
227
  });
228
228
  const mockFiles = includePaths.filter(includeFilter);
229
- let importers = "import { parse as urlParse } from 'node:url';\n";
229
+ let importers = "";
230
230
  let exporters = "";
231
231
  mockFiles.forEach((filepath, index) => {
232
232
  const file = path3.join(cwd, filepath);
@@ -234,42 +234,15 @@ async function generateMockEntryCode(cwd, include, exclude) {
234
234
  `;
235
235
  exporters += `m${index}, `;
236
236
  });
237
- return `${importers}const mockData = [${exporters}];
238
-
239
- const data = [];
240
- const mocks = {};
241
- mockData.forEach(mock => {
242
- Object.keys(mock).forEach(key => {
243
- const mockData = mock[key];
244
- if (Array.isArray(mockData)) {
245
- data.push(...mockData);
246
- } else {
247
- if (typeof mockData === 'object' && Object.prototype.hasOwnProperty.call(mockData, 'url')) {
248
- data.push(mockData);
249
- }
250
- }
251
- })
252
- })
253
- data
254
- .filter((mock) => mock.enabled || typeof mock.enabled === "undefined")
255
- .forEach((mock) => {
256
- const { pathname, query } = urlParse(mock.url, true);
257
- if (!mocks[pathname]) {
258
- mocks[pathname] = [];
259
- }
260
- mock.url = pathname;
261
- const list = mocks[pathname];
262
- if (query && typeof mock.validator === 'function') {
263
- mock.validator ??= {};
264
- mock.validator.query = Object.assign(
265
- query,
266
- mock.validator.query || {},
267
- );
268
- }
269
- mock.validator ? list.unshift(mock) : list.push(mock);
270
- });
271
- export default mocks;
272
- `;
237
+ return `import { transformMockData } from 'vite-plugin-mock-dev-server';
238
+ ${importers}
239
+ const exporters = [${exporters}];
240
+ const mockList = exporters.map((raw) => raw && raw.default
241
+ ? raw.default
242
+ : Object.keys(raw || {}).map((key) => raw[key])
243
+ )
244
+ export default transformMockData(mockList);
245
+ `;
273
246
  }
274
247
  async function buildMockEntry(inputFile, define) {
275
248
  var _a;
@@ -477,12 +450,42 @@ import EventEmitter from "events";
477
450
  import fs3 from "fs";
478
451
  import { createRequire } from "module";
479
452
  import path4 from "path";
480
- import { pathToFileURL, parse as urlParse2 } from "url";
453
+ import { pathToFileURL } from "url";
481
454
  import chokidar from "chokidar";
482
455
  import { build as build2 } from "esbuild";
483
456
  import fastGlob from "fast-glob";
484
457
  import JSON52 from "json5";
485
458
  import { createFilter as createFilter2, normalizePath } from "vite";
459
+
460
+ // src/transform.ts
461
+ import { parse as urlParse2 } from "url";
462
+ function transformMockData(mockList) {
463
+ const list = [];
464
+ for (const [, handle] of mockList.entries()) {
465
+ if (handle) {
466
+ isArray(handle) ? list.push(...handle) : list.push(handle);
467
+ }
468
+ }
469
+ const mocks = {};
470
+ list.filter(
471
+ (mock) => (mock.enabled || typeof mock.enabled === "undefined") && mock.url
472
+ ).forEach((mock) => {
473
+ const { pathname, query } = urlParse2(mock.url, true);
474
+ const list2 = mocks[pathname] ?? (mocks[pathname] = []);
475
+ const current = Object.assign({}, mock, { url: pathname });
476
+ if (query && !isFunction(current.validator)) {
477
+ current.validator = Object.assign({}, current.validator || {});
478
+ current.validator.query = Object.assign(
479
+ query,
480
+ current.validator.query || {}
481
+ );
482
+ }
483
+ current.validator ? list2.unshift(current) : list2.push(current);
484
+ });
485
+ return mocks;
486
+ }
487
+
488
+ // src/MockLoader.ts
486
489
  var _dirname = getDirname(import.meta.url);
487
490
  var _require = createRequire(_dirname);
488
491
  var _MockLoader = class extends EventEmitter {
@@ -593,28 +596,7 @@ var _MockLoader = class extends EventEmitter {
593
596
  (_b = this.depsWatcher) == null ? void 0 : _b.close();
594
597
  }
595
598
  updateMockList() {
596
- const mockList = [];
597
- for (const [, handle] of this.moduleCache.entries()) {
598
- isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
599
- }
600
- const mocks = {};
601
- mockList.filter((mock) => mock.enabled || typeof mock.enabled === "undefined").forEach((mock) => {
602
- const { pathname, query } = urlParse2(mock.url, true);
603
- if (!mocks[pathname]) {
604
- mocks[pathname] = [];
605
- }
606
- mock.url = pathname;
607
- const list = mocks[pathname];
608
- if (query && !isFunction(mock.validator)) {
609
- mock.validator ?? (mock.validator = {});
610
- mock.validator.query = Object.assign(
611
- query,
612
- mock.validator.query || {}
613
- );
614
- }
615
- mock.validator ? list.unshift(mock) : list.push(mock);
616
- });
617
- this._mockData = mocks;
599
+ this._mockData = transformMockData(this.moduleCache);
618
600
  }
619
601
  updateModuleDeps(filepath, deps) {
620
602
  Object.keys(deps).forEach((mPath) => {
@@ -861,5 +843,6 @@ export {
861
843
  baseMiddleware,
862
844
  src_default as default,
863
845
  defineMock,
864
- mockDevServerPlugin
846
+ mockDevServerPlugin,
847
+ transformMockData
865
848
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-mock-dev-server",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "keywords": [
5
5
  "vite",
6
6
  "plugin",