vite-plugin-mock-dev-server 1.0.1 → 1.0.3

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
@@ -11,8 +11,10 @@
11
11
  <a href="https://www.npmjs.com/package/vite-plugin-mock-dev-server"><img alt="npm" src="https://img.shields.io/npm/v/vite-plugin-mock-dev-server?style=flat-square"></a>
12
12
  <img alt="node-current" src="https://img.shields.io/node/v/vite-plugin-mock-dev-server?style=flat-square">
13
13
  <img alt="npm peer dependency version" src="https://img.shields.io/npm/dependency-version/vite-plugin-mock-dev-server/peer/vite?style=flat-square">
14
- <img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/pengzhanbo/vite-plugin-mock-dev-server/lint.yml?style=flat-square">
15
14
  <img alt="npm" src="https://img.shields.io/npm/dm/vite-plugin-mock-dev-server?style=flat-square">
15
+ <br>
16
+ <img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/pengzhanbo/vite-plugin-mock-dev-server/lint.yml?style=flat-square">
17
+ <a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server?ref=badge_shield"><img alt="fossa status" src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server.svg?type=shield"></a>
16
18
  </p>
17
19
  <br>
18
20
  <p align="center">
@@ -38,7 +40,7 @@
38
40
  - 🍕 Support `viteConfig.define` in mock file
39
41
  - 📤 Support `multipart` content-type,mock upload file.
40
42
  - 🌈 Support `vite preview` mode
41
- - 🗂 Support for building small mock services that can be deployed independently
43
+ - 🗂 Support for building independently deployed mock services
42
44
 
43
45
 
44
46
  ## Documentation
@@ -50,7 +52,6 @@ See the [documentation](https://vite-plugin-mock-dev-server.netlify.app/) to lea
50
52
  ## Playground
51
53
 
52
54
  [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/pengzhanbo/vite-plugin-mock-dev-server/tree/main/playground)
53
- [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server?ref=badge_shield)
54
55
 
55
56
  ## Usage
56
57
 
@@ -170,7 +171,7 @@ export default defineConfig({
170
171
 
171
172
  **Type:** `boolean`
172
173
 
173
- 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.
174
175
  Turn this on when you want to refresh the page every time you modify the mock file.
175
176
 
176
177
 
package/README.zh-CN.md CHANGED
@@ -13,8 +13,10 @@
13
13
  <a href="https://www.npmjs.com/package/vite-plugin-mock-dev-server"><img alt="npm" src="https://img.shields.io/npm/v/vite-plugin-mock-dev-server?style=flat-square"></a>
14
14
  <img alt="node-current" src="https://img.shields.io/node/v/vite-plugin-mock-dev-server?style=flat-square">
15
15
  <img alt="npm peer dependency version" src="https://img.shields.io/npm/dependency-version/vite-plugin-mock-dev-server/peer/vite?style=flat-square">
16
- <img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/pengzhanbo/vite-plugin-mock-dev-server/lint.yml?style=flat-square">
17
16
  <img alt="npm" src="https://img.shields.io/npm/dm/vite-plugin-mock-dev-server?style=flat-square">
17
+ <br>
18
+ <img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/pengzhanbo/vite-plugin-mock-dev-server/lint.yml?style=flat-square">
19
+ <a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server?ref=badge_shield"><img alt="fossa status" src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fpengzhanbo%2Fvite-plugin-mock-dev-server.svg?type=shield"></a>
18
20
  </p>
19
21
  <br>
20
22
  <p align="center">
package/dist/index.cjs CHANGED
@@ -52,7 +52,7 @@ var import_vite = require("vite");
52
52
 
53
53
  // package.json
54
54
  var name = "vite-plugin-mock-dev-server";
55
- var version = "1.0.1";
55
+ var version = "1.0.3";
56
56
 
57
57
  // src/esbuildPlugin.ts
58
58
  var import_promises = __toESM(require("fs/promises"), 1);
@@ -236,8 +236,10 @@ function generatePackageJson(pkg, mockDeps) {
236
236
  },
237
237
  dependencies: {
238
238
  "connect": "^3.7.0",
239
- "vite-plugin-mock-dev-server": `^${version}`
240
- }
239
+ "vite-plugin-mock-dev-server": `^${version}`,
240
+ "cors": "^2.8.5"
241
+ },
242
+ pnpm: { peerDependencyRules: { ignoreMissing: ["vite"] } }
241
243
  };
242
244
  mockDeps.forEach((dep) => {
243
245
  mockPkg.dependencies[dep] = dependents[dep] || "latest";
@@ -245,16 +247,20 @@ function generatePackageJson(pkg, mockDeps) {
245
247
  return JSON.stringify(mockPkg, null, 2);
246
248
  }
247
249
  function generatorServerEntryCode(proxies, port = 8080) {
248
- return `import connect from 'connect'
249
- import { baseMiddleware } from 'vite-plugin-mock-dev-server'
250
- import mockData from './mock-data.js'
251
- const app = connect()
250
+ return `import connect from 'connect';
251
+ import corsMiddleware from 'cors';
252
+ import { baseMiddleware } from 'vite-plugin-mock-dev-server';
253
+ import mockData from './mock-data.js';
254
+
255
+ const app = connect();
256
+ app.use(corsMiddleware());
252
257
  app.use(baseMiddleware({ mockData }, {
253
258
  formidableOptions: { multiples: true },
254
259
  proxies: ${JSON.stringify(proxies)}
255
- }))
256
- app.listen(${port})
257
- console.log('listen: http://localhost:${port}')
260
+ }));
261
+ app.listen(${port});
262
+
263
+ console.log('listen: http://localhost:${port}');
258
264
  `;
259
265
  }
260
266
  async function generateMockEntryCode(cwd, include, exclude) {
@@ -263,11 +269,11 @@ async function generateMockEntryCode(cwd, include, exclude) {
263
269
  resolve: false
264
270
  });
265
271
  const mockFiles = includePaths.filter(includeFilter);
266
- let importers = "";
272
+ let importers = "import { parse as urlParse } from 'node:url';\n";
267
273
  let exporters = "";
268
274
  mockFiles.forEach((filepath, index) => {
269
275
  const file = import_node_path3.default.join(cwd, filepath);
270
- importers += `import * as m${index} from '${file}'
276
+ importers += `import * as m${index} from '${file}';
271
277
  `;
272
278
  exporters += `m${index}, `;
273
279
  });
@@ -290,10 +296,19 @@ mockData.forEach(mock => {
290
296
  data
291
297
  .filter((mock) => mock.enabled || typeof mock.enabled === "undefined")
292
298
  .forEach((mock) => {
293
- if (!mocks[mock.url]) {
294
- mocks[mock.url] = [];
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
+ );
295
311
  }
296
- const list = mocks[mock.url];
297
312
  mock.validator ? list.unshift(mock) : list.push(mock);
298
313
  });
299
314
  export default mocks;
@@ -623,10 +638,14 @@ var _MockLoader = class extends import_node_events.default {
623
638
  updateMockList() {
624
639
  const mockList = [];
625
640
  for (const [, handle] of this.moduleCache.entries()) {
626
- isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
641
+ if (handle) {
642
+ isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
643
+ }
627
644
  }
628
645
  const mocks = {};
629
- mockList.filter((mock) => mock.enabled || typeof mock.enabled === "undefined").forEach((mock) => {
646
+ mockList.filter(
647
+ (mock) => (mock.enabled || typeof mock.enabled === "undefined") && mock.url
648
+ ).forEach((mock) => {
630
649
  const { pathname, query } = (0, import_node_url3.parse)(mock.url, true);
631
650
  if (!mocks[pathname]) {
632
651
  mocks[pathname] = [];
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.1";
12
+ var version = "1.0.3";
13
13
 
14
14
  // src/esbuildPlugin.ts
15
15
  import fsp from "fs/promises";
@@ -193,8 +193,10 @@ function generatePackageJson(pkg, mockDeps) {
193
193
  },
194
194
  dependencies: {
195
195
  "connect": "^3.7.0",
196
- "vite-plugin-mock-dev-server": `^${version}`
197
- }
196
+ "vite-plugin-mock-dev-server": `^${version}`,
197
+ "cors": "^2.8.5"
198
+ },
199
+ pnpm: { peerDependencyRules: { ignoreMissing: ["vite"] } }
198
200
  };
199
201
  mockDeps.forEach((dep) => {
200
202
  mockPkg.dependencies[dep] = dependents[dep] || "latest";
@@ -202,16 +204,20 @@ function generatePackageJson(pkg, mockDeps) {
202
204
  return JSON.stringify(mockPkg, null, 2);
203
205
  }
204
206
  function generatorServerEntryCode(proxies, port = 8080) {
205
- return `import connect from 'connect'
206
- import { baseMiddleware } from 'vite-plugin-mock-dev-server'
207
- import mockData from './mock-data.js'
208
- const app = connect()
207
+ return `import connect from 'connect';
208
+ import corsMiddleware from 'cors';
209
+ import { baseMiddleware } from 'vite-plugin-mock-dev-server';
210
+ import mockData from './mock-data.js';
211
+
212
+ const app = connect();
213
+ app.use(corsMiddleware());
209
214
  app.use(baseMiddleware({ mockData }, {
210
215
  formidableOptions: { multiples: true },
211
216
  proxies: ${JSON.stringify(proxies)}
212
- }))
213
- app.listen(${port})
214
- console.log('listen: http://localhost:${port}')
217
+ }));
218
+ app.listen(${port});
219
+
220
+ console.log('listen: http://localhost:${port}');
215
221
  `;
216
222
  }
217
223
  async function generateMockEntryCode(cwd, include, exclude) {
@@ -220,11 +226,11 @@ async function generateMockEntryCode(cwd, include, exclude) {
220
226
  resolve: false
221
227
  });
222
228
  const mockFiles = includePaths.filter(includeFilter);
223
- let importers = "";
229
+ let importers = "import { parse as urlParse } from 'node:url';\n";
224
230
  let exporters = "";
225
231
  mockFiles.forEach((filepath, index) => {
226
232
  const file = path3.join(cwd, filepath);
227
- importers += `import * as m${index} from '${file}'
233
+ importers += `import * as m${index} from '${file}';
228
234
  `;
229
235
  exporters += `m${index}, `;
230
236
  });
@@ -247,10 +253,19 @@ mockData.forEach(mock => {
247
253
  data
248
254
  .filter((mock) => mock.enabled || typeof mock.enabled === "undefined")
249
255
  .forEach((mock) => {
250
- if (!mocks[mock.url]) {
251
- mocks[mock.url] = [];
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
+ );
252
268
  }
253
- const list = mocks[mock.url];
254
269
  mock.validator ? list.unshift(mock) : list.push(mock);
255
270
  });
256
271
  export default mocks;
@@ -580,10 +595,14 @@ var _MockLoader = class extends EventEmitter {
580
595
  updateMockList() {
581
596
  const mockList = [];
582
597
  for (const [, handle] of this.moduleCache.entries()) {
583
- isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
598
+ if (handle) {
599
+ isArray(handle) ? mockList.push(...handle) : mockList.push(handle);
600
+ }
584
601
  }
585
602
  const mocks = {};
586
- mockList.filter((mock) => mock.enabled || typeof mock.enabled === "undefined").forEach((mock) => {
603
+ mockList.filter(
604
+ (mock) => (mock.enabled || typeof mock.enabled === "undefined") && mock.url
605
+ ).forEach((mock) => {
587
606
  const { pathname, query } = urlParse2(mock.url, true);
588
607
  if (!mocks[pathname]) {
589
608
  mocks[pathname] = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-mock-dev-server",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "keywords": [
5
5
  "vite",
6
6
  "plugin",