vite-plugin-mock-dev-server 1.9.2 → 2.0.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.
@@ -1,323 +0,0 @@
1
- //#region rolldown:runtime
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
- key = keys[i];
11
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
- get: ((k) => from[k]).bind(null, key),
13
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
- });
15
- }
16
- return to;
17
- };
18
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
- value: mod,
20
- enumerable: true
21
- }) : target, mod));
22
-
23
- //#endregion
24
-
25
- //#region ../node_modules/.pnpm/@pengzhanbo+utils@2.1.0/node_modules/@pengzhanbo/utils/dist/index.mjs
26
- function toString(s) {
27
- return Object.prototype.toString.call(s);
28
- }
29
- function getTypeName(s) {
30
- return s === null ? "null" : typeof s === "object" || typeof s === "function" ? toString(s).slice(8, -1).toLowerCase() : typeof s;
31
- }
32
- function isPrimitive(v) {
33
- return v === null || typeof v !== "object" && typeof v !== "function";
34
- }
35
- function isBoolean(v) {
36
- return typeof v === "boolean";
37
- }
38
- function isFunction(v) {
39
- return typeof v === "function";
40
- }
41
- function isString(v) {
42
- return typeof v === "string";
43
- }
44
- function isPlainObject(v) {
45
- return getTypeName(v) === "object";
46
- }
47
- function isArray(v) {
48
- return Array.isArray(v);
49
- }
50
- function isEmptyObject(v) {
51
- if (!isPlainObject(v)) return false;
52
- for (const _ in v) return false;
53
- return true;
54
- }
55
- function isTypedArray(v) {
56
- return ArrayBuffer.isView(v) && !(v instanceof DataView);
57
- }
58
- function toArray(v) {
59
- if (v === null || v === void 0) return [];
60
- if (isArray(v)) return v;
61
- return [v];
62
- }
63
- function uniq(v) {
64
- return Array.from(new Set(v));
65
- }
66
- function sortBy(array, cb) {
67
- if (array.length === 0) return [];
68
- return array.sort((a, b) => {
69
- const s1 = cb(a);
70
- const s2 = cb(b);
71
- return s1 > s2 ? 1 : s2 > s1 ? -1 : 0;
72
- });
73
- }
74
- function hasOwn(obj, key) {
75
- return obj === null ? false : Object.prototype.hasOwnProperty.call(obj, key);
76
- }
77
- function deepCloneImpl(valueToClone, objectToClone, stack = /* @__PURE__ */ new Map()) {
78
- if (isPrimitive(valueToClone)) return valueToClone;
79
- /* istanbul ignore if -- @preserve */
80
- if (stack.has(valueToClone)) return stack.get(valueToClone);
81
- if (Array.isArray(valueToClone)) {
82
- const result = Array.from({ length: valueToClone.length });
83
- stack.set(valueToClone, result);
84
- for (let i = 0; i < valueToClone.length; i++) result[i] = deepCloneImpl(valueToClone[i], objectToClone, stack);
85
- if (Object.hasOwn(valueToClone, "index")) result.index = valueToClone.index;
86
- if (Object.hasOwn(valueToClone, "input")) result.input = valueToClone.input;
87
- return result;
88
- }
89
- if (valueToClone instanceof Date) return new Date(valueToClone.getTime());
90
- if (valueToClone instanceof RegExp) {
91
- const result = new RegExp(valueToClone.source, valueToClone.flags);
92
- result.lastIndex = valueToClone.lastIndex;
93
- return result;
94
- }
95
- if (valueToClone instanceof Map) {
96
- const result = /* @__PURE__ */ new Map();
97
- stack.set(valueToClone, result);
98
- for (const [key, value] of valueToClone) result.set(key, deepCloneImpl(value, objectToClone, stack));
99
- return result;
100
- }
101
- if (valueToClone instanceof Set) {
102
- const result = /* @__PURE__ */ new Set();
103
- stack.set(valueToClone, result);
104
- for (const value of valueToClone) result.add(deepCloneImpl(value, objectToClone, stack));
105
- return result;
106
- }
107
- if (typeof Buffer !== "undefined" && Buffer.isBuffer(valueToClone)) return valueToClone.subarray();
108
- if (isTypedArray(valueToClone)) {
109
- const result = new (Object.getPrototypeOf(valueToClone)).constructor(valueToClone.length);
110
- stack.set(valueToClone, result);
111
- for (let i = 0; i < valueToClone.length; i++) result[i] = deepCloneImpl(valueToClone[i], objectToClone, stack);
112
- return result;
113
- }
114
- if (valueToClone instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && valueToClone instanceof SharedArrayBuffer) return valueToClone.slice(0);
115
- if (valueToClone instanceof DataView) {
116
- const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);
117
- stack.set(valueToClone, result);
118
- copyProperties(result, valueToClone, objectToClone, stack);
119
- return result;
120
- }
121
- if (typeof File !== "undefined" && valueToClone instanceof File) {
122
- const result = new File([valueToClone], valueToClone.name, { type: valueToClone.type });
123
- stack.set(valueToClone, result);
124
- copyProperties(result, valueToClone, objectToClone, stack);
125
- return result;
126
- }
127
- if (valueToClone instanceof Blob) {
128
- const result = new Blob([valueToClone], { type: valueToClone.type });
129
- stack.set(valueToClone, result);
130
- copyProperties(result, valueToClone, objectToClone, stack);
131
- return result;
132
- }
133
- if (valueToClone instanceof Error) {
134
- const result = new valueToClone.constructor(valueToClone.message, { cause: valueToClone.cause });
135
- stack.set(valueToClone, result);
136
- if (hasOwn(valueToClone, "name")) result.name = valueToClone.name;
137
- result.stack = valueToClone.stack;
138
- copyProperties(result, valueToClone, objectToClone, stack);
139
- return result;
140
- }
141
- /* istanbul ignore if -- @preserve */
142
- if (typeof valueToClone === "object" && valueToClone !== null) {
143
- const result = Object.create(Object.getPrototypeOf(valueToClone));
144
- stack.set(valueToClone, result);
145
- copyProperties(result, valueToClone, objectToClone, stack);
146
- return result;
147
- }
148
- /* istanbul ignore next -- @preserve */
149
- return valueToClone;
150
- }
151
- function copyProperties(target, source, objectToClone = target, stack) {
152
- const keys = [...Object.keys(source), ...getSymbols(source)];
153
- for (let i = 0; i < keys.length; i++) {
154
- const key = keys[i];
155
- const descriptor = Object.getOwnPropertyDescriptor(target, key);
156
- if (descriptor == null || descriptor.writable) target[key] = deepCloneImpl(source[key], objectToClone, stack);
157
- }
158
- }
159
- function getSymbols(object) {
160
- return Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));
161
- }
162
- function deepClone(source) {
163
- return deepCloneImpl(source, source, /* @__PURE__ */ new Map());
164
- }
165
- function deepEqual(v1, v2) {
166
- const type1 = getTypeName(v1);
167
- const type2 = getTypeName(v2);
168
- if (type1 !== type2) return false;
169
- if (type1 === "array") {
170
- if (v1.length !== v2.length) return false;
171
- return v1.every((item, index) => deepEqual(item, v2[index]));
172
- }
173
- if (type1 === "object") {
174
- const keys1 = Object.keys(v1);
175
- if (keys1.length !== Object.keys(v2).length) return false;
176
- return keys1.every((key) => deepEqual(v1[key], v2[key]));
177
- }
178
- return Object.is(v1, v2);
179
- }
180
- function random(...args) {
181
- let min, max, float;
182
- if (args.length === 1) {
183
- min = 0;
184
- max = args[0];
185
- float = false;
186
- } else if (typeof args[1] === "number") {
187
- min = args[0];
188
- max = args[1];
189
- float = !!args[2];
190
- } else {
191
- min = 0;
192
- max = args[0];
193
- float = !!args[1];
194
- }
195
- const num = Math.random() * (max - min) + min;
196
- return float ? num : Math.floor(num);
197
- }
198
- async function sleep(ms, callback) {
199
- return new Promise((resolve) => setTimeout(async () => {
200
- await callback?.();
201
- resolve();
202
- }, ms));
203
- }
204
- function promiseParallel(promises, concurrency = Number.POSITIVE_INFINITY) {
205
- promises = Array.from(promises);
206
- let current = 0;
207
- const result = [];
208
- let resolvedCount = 0;
209
- const len = promises.length;
210
- return new Promise((resolve, reject) => {
211
- function next() {
212
- const index = current++;
213
- const promise = promises[index];
214
- Promise.resolve(isFunction(promise) ? promise() : promise).then((res) => {
215
- result[index] = res;
216
- if (++resolvedCount === len) resolve(result);
217
- if (current < len) next();
218
- }).catch((reason) => reject(reason));
219
- }
220
- for (let i = 0; i < concurrency && i < len; i++) next();
221
- });
222
- }
223
- function timestamp() {
224
- return +Date.now();
225
- }
226
-
227
- //#endregion
228
- Object.defineProperty(exports, '__toESM', {
229
- enumerable: true,
230
- get: function () {
231
- return __toESM;
232
- }
233
- });
234
- Object.defineProperty(exports, 'deepClone', {
235
- enumerable: true,
236
- get: function () {
237
- return deepClone;
238
- }
239
- });
240
- Object.defineProperty(exports, 'deepEqual', {
241
- enumerable: true,
242
- get: function () {
243
- return deepEqual;
244
- }
245
- });
246
- Object.defineProperty(exports, 'isArray', {
247
- enumerable: true,
248
- get: function () {
249
- return isArray;
250
- }
251
- });
252
- Object.defineProperty(exports, 'isBoolean', {
253
- enumerable: true,
254
- get: function () {
255
- return isBoolean;
256
- }
257
- });
258
- Object.defineProperty(exports, 'isEmptyObject', {
259
- enumerable: true,
260
- get: function () {
261
- return isEmptyObject;
262
- }
263
- });
264
- Object.defineProperty(exports, 'isFunction', {
265
- enumerable: true,
266
- get: function () {
267
- return isFunction;
268
- }
269
- });
270
- Object.defineProperty(exports, 'isPlainObject', {
271
- enumerable: true,
272
- get: function () {
273
- return isPlainObject;
274
- }
275
- });
276
- Object.defineProperty(exports, 'isString', {
277
- enumerable: true,
278
- get: function () {
279
- return isString;
280
- }
281
- });
282
- Object.defineProperty(exports, 'promiseParallel', {
283
- enumerable: true,
284
- get: function () {
285
- return promiseParallel;
286
- }
287
- });
288
- Object.defineProperty(exports, 'random', {
289
- enumerable: true,
290
- get: function () {
291
- return random;
292
- }
293
- });
294
- Object.defineProperty(exports, 'sleep', {
295
- enumerable: true,
296
- get: function () {
297
- return sleep;
298
- }
299
- });
300
- Object.defineProperty(exports, 'sortBy', {
301
- enumerable: true,
302
- get: function () {
303
- return sortBy;
304
- }
305
- });
306
- Object.defineProperty(exports, 'timestamp', {
307
- enumerable: true,
308
- get: function () {
309
- return timestamp;
310
- }
311
- });
312
- Object.defineProperty(exports, 'toArray', {
313
- enumerable: true,
314
- get: function () {
315
- return toArray;
316
- }
317
- });
318
- Object.defineProperty(exports, 'uniq', {
319
- enumerable: true,
320
- get: function () {
321
- return uniq;
322
- }
323
- });
@@ -1,159 +0,0 @@
1
- const require_dist = require('./dist-DrfpZ4UT.cjs');
2
- const node_stream = require_dist.__toESM(require("node:stream"));
3
-
4
- //#region src/core/defineMock.ts
5
- function defineMock(config) {
6
- return config;
7
- }
8
- /**
9
- * Return a custom defineMock function to support preprocessing of mock config.
10
- *
11
- * 返回一个自定义的 defineMock 函数,用于支持对 mock config 的预处理。
12
- * @param transformer preprocessing function
13
- * @example
14
- * ```ts
15
- * const definePostMock = createDefineMock((mock) => {
16
- * mock.url = '/api/post/' + mock.url
17
- * })
18
- * export default definePostMock({
19
- * url: 'list',
20
- * body: [{ title: '1' }, { title: '2' }],
21
- * })
22
- * ```
23
- */
24
- function createDefineMock(transformer) {
25
- const define = (config) => {
26
- if (require_dist.isArray(config)) config = config.map((item) => transformer(item) || item);
27
- else config = transformer(config) || config;
28
- return config;
29
- };
30
- return define;
31
- }
32
-
33
- //#endregion
34
- //#region src/core/defineMockData.ts
35
- const mockDataCache = /* @__PURE__ */ new Map();
36
- const responseCache = /* @__PURE__ */ new WeakMap();
37
- const staleInterval = 70;
38
- var CacheImpl = class {
39
- value;
40
- #initialValue;
41
- #lastUpdate;
42
- constructor(value) {
43
- this.value = value;
44
- this.#initialValue = require_dist.deepClone(value);
45
- this.#lastUpdate = Date.now();
46
- }
47
- hotUpdate(value) {
48
- if (Date.now() - this.#lastUpdate < staleInterval) return;
49
- if (!require_dist.deepEqual(value, this.#initialValue)) {
50
- this.value = value;
51
- this.#initialValue = require_dist.deepClone(value);
52
- this.#lastUpdate = Date.now();
53
- }
54
- }
55
- };
56
- function defineMockData(key, initialData) {
57
- if (!mockDataCache.has(key)) mockDataCache.set(key, new CacheImpl(initialData));
58
- const cache = mockDataCache.get(key);
59
- cache.hotUpdate(initialData);
60
- if (responseCache.has(cache)) return responseCache.get(cache);
61
- const res = [() => cache.value, (val) => {
62
- if (require_dist.isFunction(val)) val = val(cache.value) ?? cache.value;
63
- cache.value = val;
64
- }];
65
- Object.defineProperty(res, "value", {
66
- get() {
67
- return cache.value;
68
- },
69
- set(val) {
70
- cache.value = val;
71
- }
72
- });
73
- responseCache.set(cache, res);
74
- return res;
75
- }
76
-
77
- //#endregion
78
- //#region src/core/sse.ts
79
- /**
80
- * Transforms "messages" to W3C event stream content.
81
- * See https://html.spec.whatwg.org/multipage/server-sent-events.html
82
- * A message is an object with one or more of the following properties:
83
- * - data (String or object, which gets turned into JSON)
84
- * - event
85
- * - id
86
- * - retry
87
- * - comment
88
- *
89
- * If constructed with a HTTP Request, it will optimise the socket for streaming.
90
- * If this stream is piped to an HTTP Response, it will set appropriate headers.
91
- */
92
- var SSEStream = class extends node_stream.Transform {
93
- constructor(req) {
94
- super({ objectMode: true });
95
- req.socket.setKeepAlive(true);
96
- req.socket.setNoDelay(true);
97
- req.socket.setTimeout(0);
98
- }
99
- pipe(destination, options) {
100
- if (destination.writeHead) {
101
- destination.writeHead(200, {
102
- "Content-Type": "text/event-stream; charset=utf-8",
103
- "Transfer-Encoding": "identity",
104
- "Cache-Control": "no-cache",
105
- "Connection": "keep-alive"
106
- });
107
- destination.flushHeaders?.();
108
- }
109
- destination.write(":ok\n\n");
110
- return super.pipe(destination, options);
111
- }
112
- _transform(message, encoding, callback) {
113
- if (message.comment) this.push(`: ${message.comment}\n`);
114
- if (message.event) this.push(`event: ${message.event}\n`);
115
- if (message.id) this.push(`id: ${message.id}\n`);
116
- if (message.retry) this.push(`retry: ${message.retry}\n`);
117
- if (message.data) this.push(dataString(message.data));
118
- this.push("\n");
119
- callback();
120
- }
121
- write(message, ...args) {
122
- return super.write(message, ...args);
123
- }
124
- };
125
- function dataString(data) {
126
- if (typeof data === "object") return dataString(JSON.stringify(data));
127
- return data.split(/\r\n|\r|\n/).map((line) => `data: ${line}\n`).join("");
128
- }
129
- function createSSEStream(req, res) {
130
- const sse = new SSEStream(req);
131
- sse.pipe(res);
132
- return sse;
133
- }
134
-
135
- //#endregion
136
- Object.defineProperty(exports, 'createDefineMock', {
137
- enumerable: true,
138
- get: function () {
139
- return createDefineMock;
140
- }
141
- });
142
- Object.defineProperty(exports, 'createSSEStream', {
143
- enumerable: true,
144
- get: function () {
145
- return createSSEStream;
146
- }
147
- });
148
- Object.defineProperty(exports, 'defineMock', {
149
- enumerable: true,
150
- get: function () {
151
- return defineMock;
152
- }
153
- });
154
- Object.defineProperty(exports, 'defineMockData', {
155
- enumerable: true,
156
- get: function () {
157
- return defineMockData;
158
- }
159
- });
@@ -1,110 +0,0 @@
1
- import { MockHttpItem, MockOptions, MockWebsocketItem } from "./types-DpbHkRjL.cjs";
2
- import { IncomingMessage, OutgoingHttpHeaders, ServerResponse } from "node:http";
3
- import { Transform } from "node:stream";
4
-
5
- //#region src/core/defineMock.d.ts
6
-
7
- /**
8
- * mock config Type helper
9
- *
10
- * mock配置 类型帮助函数
11
- * @param config see config docs:
12
- * {@link https://vite-plugin-mock-dev-server.netlify.app/guide/mock-config en-US DOC} |
13
- * {@link https://vite-plugin-mock-dev-server.netlify.app/zh/guide/mock-config zh-CN DOC}
14
- *
15
- * @example
16
- * Mock Http Request
17
- * ```ts
18
- * export default defineMock({
19
- * url: '/api/example',
20
- * method: ['GET', 'POST'],
21
- * body: { a: 1 },
22
- * })
23
- * ```
24
- * ```ts
25
- * export default defineMock({
26
- * url: '/api/example',
27
- * method: 'GET',
28
- * body: ({ query }) => ({ a: 1, b: query.b }),
29
- * })
30
- * ```
31
- * @example
32
- * Mock WebSocket
33
- * ```ts
34
- * export default defineMock({
35
- * url: '/socket.io',
36
- * ws: true,
37
- * setup(wss) {
38
- * wss.on('connection', (ws) => {
39
- * ws.on('message', (rawData) => console.log(rawData))
40
- * ws.send('data')
41
- * })
42
- * },
43
- * })
44
- * ```
45
- */
46
- declare function defineMock(config: MockHttpItem): MockHttpItem;
47
- declare function defineMock(config: MockWebsocketItem): MockWebsocketItem;
48
- declare function defineMock(config: MockOptions): MockOptions;
49
- /**
50
- * Return a custom defineMock function to support preprocessing of mock config.
51
- *
52
- * 返回一个自定义的 defineMock 函数,用于支持对 mock config 的预处理。
53
- * @param transformer preprocessing function
54
- * @example
55
- * ```ts
56
- * const definePostMock = createDefineMock((mock) => {
57
- * mock.url = '/api/post/' + mock.url
58
- * })
59
- * export default definePostMock({
60
- * url: 'list',
61
- * body: [{ title: '1' }, { title: '2' }],
62
- * })
63
- * ```
64
- */
65
- declare function createDefineMock(transformer: (mock: MockHttpItem | MockWebsocketItem) => MockHttpItem | MockWebsocketItem | void): typeof defineMock;
66
- //#endregion
67
- //#region src/core/defineMockData.d.ts
68
- type MockData<T = any> = readonly [() => T, (val: T | ((val: T) => T | void)) => void] & {
69
- value: T;
70
- };
71
- declare function defineMockData<T = any>(key: string, initialData: T): MockData<T>;
72
- //#endregion
73
- //#region src/core/sse.d.ts
74
- interface SSEMessage {
75
- data?: string | object;
76
- comment?: string;
77
- event?: string;
78
- id?: string;
79
- retry?: number;
80
- }
81
- interface WriteHeaders {
82
- writeHead?: (statusCode: number, headers?: OutgoingHttpHeaders) => WriteHeaders;
83
- flushHeaders?: () => void;
84
- }
85
- type HeaderStream = NodeJS.WritableStream & WriteHeaders;
86
- /**
87
- * Transforms "messages" to W3C event stream content.
88
- * See https://html.spec.whatwg.org/multipage/server-sent-events.html
89
- * A message is an object with one or more of the following properties:
90
- * - data (String or object, which gets turned into JSON)
91
- * - event
92
- * - id
93
- * - retry
94
- * - comment
95
- *
96
- * If constructed with a HTTP Request, it will optimise the socket for streaming.
97
- * If this stream is piped to an HTTP Response, it will set appropriate headers.
98
- */
99
- declare class SSEStream extends Transform {
100
- constructor(req: IncomingMessage);
101
- pipe<T extends HeaderStream>(destination: T, options?: {
102
- end?: boolean;
103
- }): T;
104
- _transform(message: SSEMessage, encoding: string, callback: (error?: (Error | null), data?: any) => void): void;
105
- write(message: SSEMessage, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
106
- write(message: SSEMessage, cb?: (error: Error | null | undefined) => void): boolean;
107
- }
108
- declare function createSSEStream(req: IncomingMessage, res: ServerResponse): SSEStream;
109
- //#endregion
110
- export { HeaderStream, MockData, SSEMessage, createDefineMock, createSSEStream, defineMock, defineMockData };
package/dist/helper.cjs DELETED
@@ -1,7 +0,0 @@
1
- require('./dist-DrfpZ4UT.cjs');
2
- const require_helper = require('./helper-CCVedLL0.cjs');
3
-
4
- exports.createDefineMock = require_helper.createDefineMock;
5
- exports.createSSEStream = require_helper.createSSEStream;
6
- exports.defineMock = require_helper.defineMock;
7
- exports.defineMockData = require_helper.defineMockData;
package/dist/helper.d.cts DELETED
@@ -1,3 +0,0 @@
1
- import { MockHttpItem, MockOptions, MockRequest, MockWebsocketItem } from "./types-DpbHkRjL.cjs";
2
- import { HeaderStream, MockData, SSEMessage, createDefineMock, createSSEStream, defineMock, defineMockData } from "./helper-iVHsUTZ6.cjs";
3
- export { HeaderStream, MockData, MockHttpItem, MockOptions, MockRequest, MockWebsocketItem, SSEMessage, createDefineMock, createSSEStream, defineMock, defineMockData };