vite-plugin-mock-dev-server 1.6.0 → 1.7.0
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 +14 -892
- package/dist/chunk-FND5XIG2.cjs +73 -0
- package/dist/chunk-S76FMTCD.cjs +911 -0
- package/dist/chunk-TTKDHWOT.js +911 -0
- package/dist/chunk-VMBOC7DG.js +73 -0
- package/dist/helper.cjs +10 -0
- package/dist/helper.d.cts +87 -0
- package/dist/helper.d.ts +87 -0
- package/dist/helper.js +10 -0
- package/dist/index.cjs +366 -1390
- package/dist/index.d.cts +20 -728
- package/dist/index.d.ts +20 -727
- package/dist/index.js +307 -1288
- package/dist/server.cjs +18 -0
- package/dist/server.d.cts +94 -0
- package/dist/server.d.ts +94 -0
- package/dist/server.js +18 -0
- package/dist/types-D50kW_6z.d.cts +571 -0
- package/dist/types-D50kW_6z.d.ts +571 -0
- package/package.json +32 -33
- package/README.zh-CN.md +0 -943
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// src/core/defineMock.ts
|
|
2
|
+
import { isArray } from "@pengzhanbo/utils";
|
|
3
|
+
function defineMock(config) {
|
|
4
|
+
return config;
|
|
5
|
+
}
|
|
6
|
+
function createDefineMock(transformer) {
|
|
7
|
+
const define = (config) => {
|
|
8
|
+
if (isArray(config))
|
|
9
|
+
config = config.map((item) => transformer(item) || item);
|
|
10
|
+
else
|
|
11
|
+
config = transformer(config) || config;
|
|
12
|
+
return config;
|
|
13
|
+
};
|
|
14
|
+
return define;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/core/defineMockData.ts
|
|
18
|
+
import { deepClone, deepEqual, isFunction } from "@pengzhanbo/utils";
|
|
19
|
+
var mockDataCache = /* @__PURE__ */ new Map();
|
|
20
|
+
var responseCache = /* @__PURE__ */ new WeakMap();
|
|
21
|
+
var staleInterval = 70;
|
|
22
|
+
var CacheImpl = class {
|
|
23
|
+
value;
|
|
24
|
+
// 初始化数据的备份,用于 判断 传入的初始化数据是否发生变更
|
|
25
|
+
#initialValue;
|
|
26
|
+
#lastUpdate;
|
|
27
|
+
constructor(value) {
|
|
28
|
+
this.value = value;
|
|
29
|
+
this.#initialValue = deepClone(value);
|
|
30
|
+
this.#lastUpdate = Date.now();
|
|
31
|
+
}
|
|
32
|
+
hotUpdate(value) {
|
|
33
|
+
if (Date.now() - this.#lastUpdate < staleInterval)
|
|
34
|
+
return;
|
|
35
|
+
if (!deepEqual(value, this.#initialValue)) {
|
|
36
|
+
this.value = value;
|
|
37
|
+
this.#initialValue = deepClone(value);
|
|
38
|
+
this.#lastUpdate = Date.now();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
function defineMockData(key, initialData) {
|
|
43
|
+
if (!mockDataCache.has(key))
|
|
44
|
+
mockDataCache.set(key, new CacheImpl(initialData));
|
|
45
|
+
const cache = mockDataCache.get(key);
|
|
46
|
+
cache.hotUpdate(initialData);
|
|
47
|
+
if (responseCache.has(cache))
|
|
48
|
+
return responseCache.get(cache);
|
|
49
|
+
const res = [
|
|
50
|
+
() => cache.value,
|
|
51
|
+
(val) => {
|
|
52
|
+
if (isFunction(val))
|
|
53
|
+
val = val(cache.value) ?? cache.value;
|
|
54
|
+
cache.value = val;
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
Object.defineProperty(res, "value", {
|
|
58
|
+
get() {
|
|
59
|
+
return cache.value;
|
|
60
|
+
},
|
|
61
|
+
set(val) {
|
|
62
|
+
cache.value = val;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
responseCache.set(cache, res);
|
|
66
|
+
return res;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
defineMock,
|
|
71
|
+
createDefineMock,
|
|
72
|
+
defineMockData
|
|
73
|
+
};
|
package/dist/helper.cjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkFND5XIG2cjs = require('./chunk-FND5XIG2.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.createDefineMock = _chunkFND5XIG2cjs.createDefineMock; exports.defineMock = _chunkFND5XIG2cjs.defineMock; exports.defineMockData = _chunkFND5XIG2cjs.defineMockData;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { b as MockHttpItem, c as MockWebsocketItem, a as MockOptions } from './types-D50kW_6z.cjs';
|
|
2
|
+
export { d as MockRequest } from './types-D50kW_6z.cjs';
|
|
3
|
+
import 'node:buffer';
|
|
4
|
+
import 'node:http';
|
|
5
|
+
import 'node:stream';
|
|
6
|
+
import 'cookies';
|
|
7
|
+
import 'cors';
|
|
8
|
+
import 'formidable';
|
|
9
|
+
import 'vite';
|
|
10
|
+
import 'ws';
|
|
11
|
+
import 'co-body';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* mock config Type helper
|
|
15
|
+
*
|
|
16
|
+
* mock配置 类型帮助函数
|
|
17
|
+
* @param config see config docs:
|
|
18
|
+
* {@link https://vite-plugin-mock-dev-server.netlify.app/en/guide/mock-config en-US DOC} |
|
|
19
|
+
* {@link https://vite-plugin-mock-dev-server.netlify.app/guide/mock-config zh-CN DOC}
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* Mock Http Request
|
|
23
|
+
* ```ts
|
|
24
|
+
* export default defineMock({
|
|
25
|
+
* url: '/api/example',
|
|
26
|
+
* method: ['GET', 'POST'],
|
|
27
|
+
* body: { a: 1 },
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
* ```ts
|
|
31
|
+
* export default defineMock({
|
|
32
|
+
* url: '/api/example',
|
|
33
|
+
* method: 'GET',
|
|
34
|
+
* body: ({ query }) => ({ a: 1, b: query.b }),
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
37
|
+
* @example
|
|
38
|
+
* Mock WebSocket
|
|
39
|
+
* ```ts
|
|
40
|
+
* export default defineMock({
|
|
41
|
+
* url: '/socket.io',
|
|
42
|
+
* ws: true,
|
|
43
|
+
* setup(wss) {
|
|
44
|
+
* wss.on('connection', (ws) => {
|
|
45
|
+
* ws.on('message', (rawData) => console.log(rawData))
|
|
46
|
+
* ws.send('data')
|
|
47
|
+
* })
|
|
48
|
+
* },
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function defineMock(config: MockHttpItem): MockHttpItem;
|
|
53
|
+
declare function defineMock(config: MockWebsocketItem): MockWebsocketItem;
|
|
54
|
+
declare function defineMock(config: MockOptions): MockOptions;
|
|
55
|
+
/**
|
|
56
|
+
* Return a custom defineMock function to support preprocessing of mock config.
|
|
57
|
+
*
|
|
58
|
+
* 返回一个自定义的 defineMock 函数,用于支持对 mock config 的预处理。
|
|
59
|
+
* @param transformer preprocessing function
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const definePostMock = createDefineMock((mock) => {
|
|
63
|
+
* mock.url = '/api/post/' + mock.url
|
|
64
|
+
* })
|
|
65
|
+
* export default definePostMock({
|
|
66
|
+
* url: 'list',
|
|
67
|
+
* body: [{ title: '1' }, { title: '2' }],
|
|
68
|
+
* })
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
declare function createDefineMock(transformer: (mock: MockHttpItem | MockWebsocketItem) => MockHttpItem | MockWebsocketItem | void): typeof defineMock;
|
|
72
|
+
|
|
73
|
+
type MockData<T = any> = readonly [
|
|
74
|
+
/**
|
|
75
|
+
* getter
|
|
76
|
+
*/
|
|
77
|
+
() => T,
|
|
78
|
+
/**
|
|
79
|
+
* setter
|
|
80
|
+
*/
|
|
81
|
+
(val: T | ((val: T) => T | void)) => void
|
|
82
|
+
] & {
|
|
83
|
+
value: T;
|
|
84
|
+
};
|
|
85
|
+
declare function defineMockData<T = any>(key: string, initialData: T): MockData<T>;
|
|
86
|
+
|
|
87
|
+
export { type MockData, MockHttpItem, MockOptions, MockWebsocketItem, createDefineMock, defineMock, defineMockData };
|
package/dist/helper.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { b as MockHttpItem, c as MockWebsocketItem, a as MockOptions } from './types-D50kW_6z.js';
|
|
2
|
+
export { d as MockRequest } from './types-D50kW_6z.js';
|
|
3
|
+
import 'node:buffer';
|
|
4
|
+
import 'node:http';
|
|
5
|
+
import 'node:stream';
|
|
6
|
+
import 'cookies';
|
|
7
|
+
import 'cors';
|
|
8
|
+
import 'formidable';
|
|
9
|
+
import 'vite';
|
|
10
|
+
import 'ws';
|
|
11
|
+
import 'co-body';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* mock config Type helper
|
|
15
|
+
*
|
|
16
|
+
* mock配置 类型帮助函数
|
|
17
|
+
* @param config see config docs:
|
|
18
|
+
* {@link https://vite-plugin-mock-dev-server.netlify.app/en/guide/mock-config en-US DOC} |
|
|
19
|
+
* {@link https://vite-plugin-mock-dev-server.netlify.app/guide/mock-config zh-CN DOC}
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* Mock Http Request
|
|
23
|
+
* ```ts
|
|
24
|
+
* export default defineMock({
|
|
25
|
+
* url: '/api/example',
|
|
26
|
+
* method: ['GET', 'POST'],
|
|
27
|
+
* body: { a: 1 },
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
* ```ts
|
|
31
|
+
* export default defineMock({
|
|
32
|
+
* url: '/api/example',
|
|
33
|
+
* method: 'GET',
|
|
34
|
+
* body: ({ query }) => ({ a: 1, b: query.b }),
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
37
|
+
* @example
|
|
38
|
+
* Mock WebSocket
|
|
39
|
+
* ```ts
|
|
40
|
+
* export default defineMock({
|
|
41
|
+
* url: '/socket.io',
|
|
42
|
+
* ws: true,
|
|
43
|
+
* setup(wss) {
|
|
44
|
+
* wss.on('connection', (ws) => {
|
|
45
|
+
* ws.on('message', (rawData) => console.log(rawData))
|
|
46
|
+
* ws.send('data')
|
|
47
|
+
* })
|
|
48
|
+
* },
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function defineMock(config: MockHttpItem): MockHttpItem;
|
|
53
|
+
declare function defineMock(config: MockWebsocketItem): MockWebsocketItem;
|
|
54
|
+
declare function defineMock(config: MockOptions): MockOptions;
|
|
55
|
+
/**
|
|
56
|
+
* Return a custom defineMock function to support preprocessing of mock config.
|
|
57
|
+
*
|
|
58
|
+
* 返回一个自定义的 defineMock 函数,用于支持对 mock config 的预处理。
|
|
59
|
+
* @param transformer preprocessing function
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* const definePostMock = createDefineMock((mock) => {
|
|
63
|
+
* mock.url = '/api/post/' + mock.url
|
|
64
|
+
* })
|
|
65
|
+
* export default definePostMock({
|
|
66
|
+
* url: 'list',
|
|
67
|
+
* body: [{ title: '1' }, { title: '2' }],
|
|
68
|
+
* })
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
declare function createDefineMock(transformer: (mock: MockHttpItem | MockWebsocketItem) => MockHttpItem | MockWebsocketItem | void): typeof defineMock;
|
|
72
|
+
|
|
73
|
+
type MockData<T = any> = readonly [
|
|
74
|
+
/**
|
|
75
|
+
* getter
|
|
76
|
+
*/
|
|
77
|
+
() => T,
|
|
78
|
+
/**
|
|
79
|
+
* setter
|
|
80
|
+
*/
|
|
81
|
+
(val: T | ((val: T) => T | void)) => void
|
|
82
|
+
] & {
|
|
83
|
+
value: T;
|
|
84
|
+
};
|
|
85
|
+
declare function defineMockData<T = any>(key: string, initialData: T): MockData<T>;
|
|
86
|
+
|
|
87
|
+
export { type MockData, MockHttpItem, MockOptions, MockWebsocketItem, createDefineMock, defineMock, defineMockData };
|