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 +2 -2
- package/dist/index.cjs +48 -64
- package/dist/index.d.ts +4 -2
- package/dist/index.js +45 -62
- package/package.json +1 -1
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
|
|
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
|
|
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.
|
|
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 = "
|
|
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
|
|
281
|
-
|
|
282
|
-
const
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
Object.keys(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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 = "
|
|
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
|
|
238
|
-
|
|
239
|
-
const
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
Object.keys(
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
|
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
|
-
|
|
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
|
};
|