vite-plugin-mock-dev-server 0.3.20 → 0.3.21
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 +8 -2
- package/README.zh-CN.md +8 -2
- package/dist/index.cjs +22 -6
- package/dist/index.d.ts +4 -0
- package/dist/index.js +12 -3
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -263,14 +263,14 @@ export default defineMock({
|
|
|
263
263
|
* configurations and determines which mock configuration
|
|
264
264
|
* is valid according to the validator.
|
|
265
265
|
*
|
|
266
|
-
* @type { headers?: object; body?: object; query?: object; params?: object }
|
|
266
|
+
* @type { headers?: object; body?: object; query?: object; params?: object; refererQuery?: object }
|
|
267
267
|
*
|
|
268
268
|
* If the validator incoming is an object,
|
|
269
269
|
* then the validation method is the comparison of the
|
|
270
270
|
* strict request of interface, headers/body/query/params
|
|
271
271
|
* each `key-value` congruent, congruent check through
|
|
272
272
|
*
|
|
273
|
-
* @type ({ headers: object; body: object; query: object; params: object }) => boolean
|
|
273
|
+
* @type ({ headers: object; body: object; query: object; params: object; refererQuery: object }) => boolean
|
|
274
274
|
* If the validator is passed a function,
|
|
275
275
|
* it takes the requested interface-related data as an input,
|
|
276
276
|
* gives it to the consumer for custom validation,
|
|
@@ -282,6 +282,12 @@ export default defineMock({
|
|
|
282
282
|
body: {},
|
|
283
283
|
query: {},
|
|
284
284
|
params: {},
|
|
285
|
+
/**
|
|
286
|
+
* refererQuery validates the query in the url of the page from which the request originated,
|
|
287
|
+
* which makes it possible to modify parameters directly in the browser address bar to get
|
|
288
|
+
* different mock data
|
|
289
|
+
*/
|
|
290
|
+
refererQuery: {}
|
|
285
291
|
},
|
|
286
292
|
/**
|
|
287
293
|
*
|
package/README.zh-CN.md
CHANGED
|
@@ -262,13 +262,13 @@ export default defineMock({
|
|
|
262
262
|
* 验证器可以很好的解决这一类问题,将同个 url 分为多个 mock配置,
|
|
263
263
|
* 根据 验证器来判断哪个mock配置生效。
|
|
264
264
|
*
|
|
265
|
-
* @type { headers?: object; body?: object; query?: object; params?: object }
|
|
265
|
+
* @type { headers?: object; body?: object; query?: object; params?: object; refererQuery?: object }
|
|
266
266
|
*
|
|
267
267
|
* 如果 validator 传入的是一个对象,那么验证方式是严格比较 请求的接口
|
|
268
268
|
* 中,headers/body/query/params 的各个`key`的`value`是否全等,
|
|
269
269
|
* 全等则校验通过
|
|
270
270
|
*
|
|
271
|
-
* @type ({ headers: object; body: object; query: object; params: object }) => boolean
|
|
271
|
+
* @type ({ headers: object; body: object; query: object; params: object; refererQuery: object }) => boolean
|
|
272
272
|
* 如果 validator 传入的是一个函数,那么会讲 请求的接口相关数据作为入参,提供给使用者进行自定义校验,并返回一个 boolean
|
|
273
273
|
*
|
|
274
274
|
*/
|
|
@@ -277,6 +277,12 @@ export default defineMock({
|
|
|
277
277
|
body: {},
|
|
278
278
|
query: {},
|
|
279
279
|
params: {},
|
|
280
|
+
/**
|
|
281
|
+
* refererQuery validates the query in the url of the page from which the request originated,
|
|
282
|
+
* which makes it possible to modify parameters directly in the browser address bar to get
|
|
283
|
+
* different mock data
|
|
284
|
+
*/
|
|
285
|
+
refererQuery: {}
|
|
280
286
|
},
|
|
281
287
|
/**
|
|
282
288
|
*
|
package/dist/index.cjs
CHANGED
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -33,6 +37,10 @@ __export(src_exports, {
|
|
|
33
37
|
});
|
|
34
38
|
module.exports = __toCommonJS(src_exports);
|
|
35
39
|
|
|
40
|
+
// node_modules/.pnpm/tsup@6.6.3_typescript@4.9.5/node_modules/tsup/assets/cjs_shims.js
|
|
41
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
42
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
43
|
+
|
|
36
44
|
// src/build.ts
|
|
37
45
|
var import_node_fs2 = __toESM(require("fs"), 1);
|
|
38
46
|
var import_promises2 = __toESM(require("fs/promises"), 1);
|
|
@@ -44,7 +52,7 @@ var import_vite = require("vite");
|
|
|
44
52
|
|
|
45
53
|
// package.json
|
|
46
54
|
var name = "vite-plugin-mock-dev-server";
|
|
47
|
-
var version = "0.3.
|
|
55
|
+
var version = "0.3.21";
|
|
48
56
|
|
|
49
57
|
// src/esbuildPlugin.ts
|
|
50
58
|
var import_promises = __toESM(require("fs/promises"), 1);
|
|
@@ -97,8 +105,8 @@ var isFunction = (val) => typeof val === "function";
|
|
|
97
105
|
function sleep(timeout) {
|
|
98
106
|
return new Promise((resolve) => setTimeout(resolve, timeout));
|
|
99
107
|
}
|
|
100
|
-
function getDirname(
|
|
101
|
-
return import_node_path2.default.dirname((0, import_node_url.fileURLToPath)(
|
|
108
|
+
function getDirname(importMetaUrl2) {
|
|
109
|
+
return import_node_path2.default.dirname((0, import_node_url.fileURLToPath)(importMetaUrl2));
|
|
102
110
|
}
|
|
103
111
|
var debug = (0, import_debug.default)("vite:plugin-mock-dev-server");
|
|
104
112
|
var ensureArray = (thing) => {
|
|
@@ -345,7 +353,7 @@ async function parseMultipart(req, options) {
|
|
|
345
353
|
|
|
346
354
|
// src/validator.ts
|
|
347
355
|
function validate(request, validator) {
|
|
348
|
-
return equalObj(request.headers, validator.headers) && equalObj(request.body, validator.body) && equalObj(request.params, validator.params) && equalObj(request.query, validator.query);
|
|
356
|
+
return equalObj(request.headers, validator.headers) && equalObj(request.body, validator.body) && equalObj(request.params, validator.params) && equalObj(request.query, validator.query) && equalObj(request.refererQuery, validator.refererQuery);
|
|
349
357
|
}
|
|
350
358
|
function equalObj(left, right) {
|
|
351
359
|
if (!right)
|
|
@@ -362,6 +370,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
362
370
|
return async function(req, res, next) {
|
|
363
371
|
const method = req.method.toUpperCase();
|
|
364
372
|
const { query, pathname } = (0, import_node_url2.parse)(req.url, true);
|
|
373
|
+
const { query: refererQuery } = (0, import_node_url2.parse)(req.headers.referer || "", true);
|
|
365
374
|
if (!pathname || proxies.length === 0 || !proxies.some((context) => doesProxyContextMatchUrl(context, req.url))) {
|
|
366
375
|
return next();
|
|
367
376
|
}
|
|
@@ -388,6 +397,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
388
397
|
const params2 = urlMatch2.params || {};
|
|
389
398
|
const request = {
|
|
390
399
|
query,
|
|
400
|
+
refererQuery,
|
|
391
401
|
params: params2,
|
|
392
402
|
body: reqBody,
|
|
393
403
|
headers: req.headers
|
|
@@ -414,12 +424,14 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
414
424
|
const params = urlMatch.params || {};
|
|
415
425
|
req.body = reqBody;
|
|
416
426
|
req.query = query;
|
|
427
|
+
req.refererQuery = refererQuery;
|
|
417
428
|
req.params = params;
|
|
418
429
|
res.setHeader("Content-Type", "application/json");
|
|
419
430
|
res.setHeader("X-Mock", "generate by vite:mock-dev-server");
|
|
420
431
|
if (currentMock.headers) {
|
|
421
432
|
const headers = isFunction(currentMock.headers) ? await currentMock.headers({
|
|
422
433
|
query,
|
|
434
|
+
refererQuery,
|
|
423
435
|
body: reqBody,
|
|
424
436
|
params,
|
|
425
437
|
headers: req.headers
|
|
@@ -433,6 +445,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
433
445
|
if (isFunction(currentMock.body)) {
|
|
434
446
|
body = await currentMock.body({
|
|
435
447
|
query,
|
|
448
|
+
refererQuery,
|
|
436
449
|
body: reqBody,
|
|
437
450
|
params,
|
|
438
451
|
headers: req.headers
|
|
@@ -469,8 +482,7 @@ var import_esbuild2 = require("esbuild");
|
|
|
469
482
|
var import_fast_glob2 = __toESM(require("fast-glob"), 1);
|
|
470
483
|
var import_json52 = __toESM(require("json5"), 1);
|
|
471
484
|
var import_vite2 = require("vite");
|
|
472
|
-
var
|
|
473
|
-
var _dirname = typeof __dirname !== "undefined" ? __dirname : getDirname(import_meta.url);
|
|
485
|
+
var _dirname = getDirname(importMetaUrl);
|
|
474
486
|
var _require = (0, import_node_module.createRequire)(_dirname);
|
|
475
487
|
var _MockLoader = class extends import_node_events.default {
|
|
476
488
|
constructor(options) {
|
|
@@ -539,6 +551,10 @@ var _MockLoader = class extends import_node_events.default {
|
|
|
539
551
|
});
|
|
540
552
|
this.mockWatcher = watcher;
|
|
541
553
|
}
|
|
554
|
+
/**
|
|
555
|
+
* 监听 mock文件依赖的本地文件变动,
|
|
556
|
+
* mock依赖文件更新,mock文件也一并更新
|
|
557
|
+
*/
|
|
542
558
|
watchDeps() {
|
|
543
559
|
const oldDeps = [];
|
|
544
560
|
this.depsWatcher = import_chokidar.default.watch([], {
|
package/dist/index.d.ts
CHANGED
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 = "0.3.
|
|
12
|
+
var version = "0.3.21";
|
|
13
13
|
|
|
14
14
|
// src/esbuildPlugin.ts
|
|
15
15
|
import fsp from "fs/promises";
|
|
@@ -310,7 +310,7 @@ async function parseMultipart(req, options) {
|
|
|
310
310
|
|
|
311
311
|
// src/validator.ts
|
|
312
312
|
function validate(request, validator) {
|
|
313
|
-
return equalObj(request.headers, validator.headers) && equalObj(request.body, validator.body) && equalObj(request.params, validator.params) && equalObj(request.query, validator.query);
|
|
313
|
+
return equalObj(request.headers, validator.headers) && equalObj(request.body, validator.body) && equalObj(request.params, validator.params) && equalObj(request.query, validator.query) && equalObj(request.refererQuery, validator.refererQuery);
|
|
314
314
|
}
|
|
315
315
|
function equalObj(left, right) {
|
|
316
316
|
if (!right)
|
|
@@ -327,6 +327,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
327
327
|
return async function(req, res, next) {
|
|
328
328
|
const method = req.method.toUpperCase();
|
|
329
329
|
const { query, pathname } = urlParse(req.url, true);
|
|
330
|
+
const { query: refererQuery } = urlParse(req.headers.referer || "", true);
|
|
330
331
|
if (!pathname || proxies.length === 0 || !proxies.some((context) => doesProxyContextMatchUrl(context, req.url))) {
|
|
331
332
|
return next();
|
|
332
333
|
}
|
|
@@ -353,6 +354,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
353
354
|
const params2 = urlMatch2.params || {};
|
|
354
355
|
const request = {
|
|
355
356
|
query,
|
|
357
|
+
refererQuery,
|
|
356
358
|
params: params2,
|
|
357
359
|
body: reqBody,
|
|
358
360
|
headers: req.headers
|
|
@@ -379,12 +381,14 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
379
381
|
const params = urlMatch.params || {};
|
|
380
382
|
req.body = reqBody;
|
|
381
383
|
req.query = query;
|
|
384
|
+
req.refererQuery = refererQuery;
|
|
382
385
|
req.params = params;
|
|
383
386
|
res.setHeader("Content-Type", "application/json");
|
|
384
387
|
res.setHeader("X-Mock", "generate by vite:mock-dev-server");
|
|
385
388
|
if (currentMock.headers) {
|
|
386
389
|
const headers = isFunction(currentMock.headers) ? await currentMock.headers({
|
|
387
390
|
query,
|
|
391
|
+
refererQuery,
|
|
388
392
|
body: reqBody,
|
|
389
393
|
params,
|
|
390
394
|
headers: req.headers
|
|
@@ -398,6 +402,7 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies }) {
|
|
|
398
402
|
if (isFunction(currentMock.body)) {
|
|
399
403
|
body = await currentMock.body({
|
|
400
404
|
query,
|
|
405
|
+
refererQuery,
|
|
401
406
|
body: reqBody,
|
|
402
407
|
params,
|
|
403
408
|
headers: req.headers
|
|
@@ -434,7 +439,7 @@ import { build as build2 } from "esbuild";
|
|
|
434
439
|
import fastGlob from "fast-glob";
|
|
435
440
|
import JSON52 from "json5";
|
|
436
441
|
import { createFilter as createFilter2 } from "vite";
|
|
437
|
-
var _dirname =
|
|
442
|
+
var _dirname = getDirname(import.meta.url);
|
|
438
443
|
var _require = createRequire(_dirname);
|
|
439
444
|
var _MockLoader = class extends EventEmitter {
|
|
440
445
|
constructor(options) {
|
|
@@ -503,6 +508,10 @@ var _MockLoader = class extends EventEmitter {
|
|
|
503
508
|
});
|
|
504
509
|
this.mockWatcher = watcher;
|
|
505
510
|
}
|
|
511
|
+
/**
|
|
512
|
+
* 监听 mock文件依赖的本地文件变动,
|
|
513
|
+
* mock依赖文件更新,mock文件也一并更新
|
|
514
|
+
*/
|
|
506
515
|
watchDeps() {
|
|
507
516
|
const oldDeps = [];
|
|
508
517
|
this.depsWatcher = chokidar.watch([], {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-mock-dev-server",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"vite",
|
|
6
6
|
"plugin",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"eslint": "^8.33.0",
|
|
54
54
|
"mockjs": "^1.1.0",
|
|
55
55
|
"prettier": "^2.8.3",
|
|
56
|
-
"tsup": "^6.
|
|
56
|
+
"tsup": "^6.6.3",
|
|
57
57
|
"typescript": "^4.9.5",
|
|
58
58
|
"vite": "^4.1.1",
|
|
59
59
|
"vitepress": "1.0.0-alpha.45",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"entry": [
|
|
71
71
|
"src/index.ts"
|
|
72
72
|
],
|
|
73
|
+
"shims": true,
|
|
73
74
|
"sourcemap": false,
|
|
74
75
|
"dts": true,
|
|
75
76
|
"splitting": false,
|