vite-plugin-mock-dev-server 1.1.3 → 1.1.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 CHANGED
@@ -30,18 +30,19 @@
30
30
  - 🧲 Not injection-based, non-intrusive to client code.
31
31
  - 💡 ESModule/commonjs.
32
32
  - 🦾 Typescript.
33
+ - 🔥 HMR
33
34
  - 🏷 Support `json` / `json5`.
34
35
  - 📦 Auto import mock file.
35
36
  - 🎨 Support any lib,like `mockjs`,or not use it.
36
37
  - 📥 Path rule matching, request parameter matching.
37
38
  - ⚙️ Support Enabled/Disabled any one of api mock
38
- - 🔥 HMR
39
+ - 📀 Supports response body content type such as `text/json/buffer/stream`.
39
40
  - ⚖️ Use `server.proxy`
40
41
  - 🍕 Support `viteConfig.define` in mock file.
41
- - ⚓️ Support `resolve.alias` in mock file.
42
+ - ⚓️ Support `viteConfig.resolve.alias` in mock file.
43
+ - 🌈 Support `vite preview` mode.
42
44
  - 📤 Support `multipart` content-type,mock upload file.
43
- - 🍪 Support cookies
44
- - 🌈 Support `vite preview` mode
45
+ - 📥 Support mock download file.
45
46
  - 🗂 Support building small independent deployable mock services.
46
47
 
47
48
 
@@ -513,7 +514,7 @@ export default defineMock({
513
514
  ```ts
514
515
  export default defineMock({
515
516
  url: '/api/test',
516
- status: 504,
517
+ status: 502,
517
518
  statusText: 'Bad Gateway'
518
519
  })
519
520
  ```
@@ -561,7 +562,7 @@ export default defineMock({
561
562
  url: '/api/download',
562
563
  // When you are unsure of the type, you can pass in the file name for internal parsing by the plugin.
563
564
  type: 'my-app.dmg',
564
- body: createReadStream('./my-app.dmg')
565
+ body: () => createReadStream('./my-app.dmg')
565
566
  })
566
567
  ```
567
568
  ```html
package/README.zh-CN.md CHANGED
@@ -31,18 +31,19 @@
31
31
  - 🧲 非注入式,对客户端代码无侵入
32
32
  - 💡 ESModule/commonjs
33
33
  - 🦾 Typescript
34
+ - 🔥 热更新
34
35
  - 🏷 支持 `json` / `json5` 编写 mock 数据
35
36
  - 📦 自动加载 mock 文件
36
37
  - 🎨 可选择你喜欢的任意用于生成mock数据库,如 `mockjs`,或者不使用其他库
37
38
  - 📥 路径规则匹配,请求参数匹配
38
39
  - ⚙️ 随意开启或关闭对某个接口的 mock配置
39
- - 🔥 热更新
40
+ - - 📀 支持多种响应体数据类型,包括 `text/json/buffer/stream`.
40
41
  - ⚖️ 使用 `server.proxy` 配置
41
42
  - 🍕 支持在 mock文件中使用 `viteConfig.define`配置字段
42
- - ⚓️ 支持 `resolve.alias`
43
- - 📤 支持 multipart 类型,模拟文件上传
44
- - 🍪 支持 cookies
43
+ - ⚓️ 支持在 mock文件中使用 `viteConfig.resolve.alias` 路径别名
45
44
  - 🌈 支持 `vite preview` 模式
45
+ - 📤 支持 multipart 类型,模拟文件上传
46
+ - 📥 支持模拟文件下载
46
47
  - 🗂 支持构建可独立部署的小型mock服务
47
48
 
48
49
 
@@ -557,7 +558,7 @@ export default defineMock({
557
558
  url: '/api/download',
558
559
  // 当你不确定类型,可传入文件名由插件内部进行解析
559
560
  type: 'my-app.dmg',
560
- body: createReadStream('./my-app.dmg')
561
+ body: () => createReadStream('./my-app.dmg')
561
562
  })
562
563
  ```
563
564
  ```html
package/dist/index.cjs CHANGED
@@ -54,7 +54,7 @@ var import_vite = require("vite");
54
54
 
55
55
  // package.json
56
56
  var name = "vite-plugin-mock-dev-server";
57
- var version = "1.1.3";
57
+ var version = "1.1.4";
58
58
 
59
59
  // src/esbuildPlugin.ts
60
60
  var import_promises = __toESM(require("fs/promises"), 1);
@@ -444,24 +444,30 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies, cookiesOp
444
444
  return next();
445
445
  const { query: refererQuery } = (0, import_node_url2.parse)(req.headers.referer || "", true);
446
446
  const reqBody = await parseReqBody(req, formidableOptions);
447
+ const cookies = new import_cookies.default(req, res, cookiesOptions);
448
+ const getCookie = cookies.get.bind(cookies);
447
449
  const method = req.method.toUpperCase();
448
- const mock = fineMock(mockData[mockUrl], pathname, method, {
449
- query,
450
- refererQuery,
451
- body: reqBody,
452
- headers: req.headers
450
+ const mock = fineMock(mockData[mockUrl], {
451
+ pathname,
452
+ method,
453
+ request: {
454
+ query,
455
+ refererQuery,
456
+ body: reqBody,
457
+ headers: req.headers,
458
+ getCookie
459
+ }
453
460
  });
454
461
  if (!mock)
455
462
  return next();
456
463
  debug("middleware: ", method, pathname);
457
- const cookies = new import_cookies.default(req, res, cookiesOptions);
458
464
  const request = req;
459
465
  const response = res;
460
466
  request.body = reqBody;
461
467
  request.query = query;
462
468
  request.refererQuery = refererQuery;
463
469
  request.params = parseParams(mock.url, pathname);
464
- request.getCookie = cookies.get.bind(cookies);
470
+ request.getCookie = getCookie;
465
471
  response.setCookie = cookies.set.bind(cookies);
466
472
  const {
467
473
  body,
@@ -502,7 +508,11 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies, cookiesOp
502
508
  res.end("");
503
509
  };
504
510
  }
505
- function fineMock(mockList, pathname, method, request) {
511
+ function fineMock(mockList, {
512
+ pathname,
513
+ method,
514
+ request
515
+ }) {
506
516
  return mockList.find((mock) => {
507
517
  if (!pathname || !mock || !mock.url)
508
518
  return false;
@@ -512,11 +522,10 @@ function fineMock(mockList, pathname, method, request) {
512
522
  const hasMock = (0, import_path_to_regexp2.pathToRegexp)(mock.url).test(pathname);
513
523
  if (hasMock && mock.validator) {
514
524
  const params = parseParams(mock.url, pathname);
515
- const extraRequest = { params, ...request };
516
525
  if (isFunction(mock.validator)) {
517
- return mock.validator(extraRequest);
526
+ return mock.validator({ params, ...request });
518
527
  } else {
519
- return validate(extraRequest, mock.validator);
528
+ return validate({ params, ...request }, mock.validator);
520
529
  }
521
530
  }
522
531
  return hasMock;
package/dist/index.d.ts CHANGED
@@ -111,13 +111,12 @@ interface ExtraRequest {
111
111
  * 请求体中 headers
112
112
  */
113
113
  headers: Headers;
114
- }
115
- type MockRequest = Connect.IncomingMessage & ExtraRequest & {
116
114
  /**
117
115
  * @see [cookies](https://github.com/pillarjs/cookies#cookiesgetname--options)
118
116
  */
119
117
  getCookie: (name: string, option?: Cookies.GetOption) => string | undefined;
120
- };
118
+ }
119
+ type MockRequest = Connect.IncomingMessage & ExtraRequest;
121
120
  type MockResponse = http.ServerResponse<http.IncomingMessage> & {
122
121
  /**
123
122
  * @see [cookies](https://github.com/pillarjs/cookies#cookiessetname--values--options)
@@ -330,7 +329,7 @@ interface MockOptionsItem {
330
329
  * }
331
330
  * ```
332
331
  */
333
- validator?: Partial<ExtraRequest> | ((request: ExtraRequest) => boolean);
332
+ validator?: Partial<Omit<ExtraRequest, 'getCookie'>> | ((request: ExtraRequest) => boolean);
334
333
  }
335
334
  type MockOptions = MockOptionsItem[];
336
335
  type FormidableFile = formidable.File | formidable.File[];
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { createFilter, normalizePath } from "vite";
9
9
 
10
10
  // package.json
11
11
  var name = "vite-plugin-mock-dev-server";
12
- var version = "1.1.3";
12
+ var version = "1.1.4";
13
13
 
14
14
  // src/esbuildPlugin.ts
15
15
  import fsp from "fs/promises";
@@ -399,24 +399,30 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies, cookiesOp
399
399
  return next();
400
400
  const { query: refererQuery } = urlParse(req.headers.referer || "", true);
401
401
  const reqBody = await parseReqBody(req, formidableOptions);
402
+ const cookies = new Cookies(req, res, cookiesOptions);
403
+ const getCookie = cookies.get.bind(cookies);
402
404
  const method = req.method.toUpperCase();
403
- const mock = fineMock(mockData[mockUrl], pathname, method, {
404
- query,
405
- refererQuery,
406
- body: reqBody,
407
- headers: req.headers
405
+ const mock = fineMock(mockData[mockUrl], {
406
+ pathname,
407
+ method,
408
+ request: {
409
+ query,
410
+ refererQuery,
411
+ body: reqBody,
412
+ headers: req.headers,
413
+ getCookie
414
+ }
408
415
  });
409
416
  if (!mock)
410
417
  return next();
411
418
  debug("middleware: ", method, pathname);
412
- const cookies = new Cookies(req, res, cookiesOptions);
413
419
  const request = req;
414
420
  const response = res;
415
421
  request.body = reqBody;
416
422
  request.query = query;
417
423
  request.refererQuery = refererQuery;
418
424
  request.params = parseParams(mock.url, pathname);
419
- request.getCookie = cookies.get.bind(cookies);
425
+ request.getCookie = getCookie;
420
426
  response.setCookie = cookies.set.bind(cookies);
421
427
  const {
422
428
  body,
@@ -457,7 +463,11 @@ function baseMiddleware(mockLoader, { formidableOptions = {}, proxies, cookiesOp
457
463
  res.end("");
458
464
  };
459
465
  }
460
- function fineMock(mockList, pathname, method, request) {
466
+ function fineMock(mockList, {
467
+ pathname,
468
+ method,
469
+ request
470
+ }) {
461
471
  return mockList.find((mock) => {
462
472
  if (!pathname || !mock || !mock.url)
463
473
  return false;
@@ -467,11 +477,10 @@ function fineMock(mockList, pathname, method, request) {
467
477
  const hasMock = pathToRegexp(mock.url).test(pathname);
468
478
  if (hasMock && mock.validator) {
469
479
  const params = parseParams(mock.url, pathname);
470
- const extraRequest = { params, ...request };
471
480
  if (isFunction(mock.validator)) {
472
- return mock.validator(extraRequest);
481
+ return mock.validator({ params, ...request });
473
482
  } else {
474
- return validate(extraRequest, mock.validator);
483
+ return validate({ params, ...request }, mock.validator);
475
484
  }
476
485
  }
477
486
  return hasMock;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-mock-dev-server",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "keywords": [
5
5
  "vite",
6
6
  "plugin",
@@ -34,7 +34,7 @@
34
34
  "co-body": "^6.1.0",
35
35
  "cookies": "^0.8.0",
36
36
  "debug": "^4.3.4",
37
- "esbuild": "^0.17.17",
37
+ "esbuild": "^0.17.18",
38
38
  "fast-glob": "^3.2.12",
39
39
  "formidable": "^2.1.1",
40
40
  "http-status": "^1.6.2",
@@ -53,17 +53,15 @@
53
53
  "@types/formidable": "^2.0.5",
54
54
  "@types/is-core-module": "^2.2.0",
55
55
  "@types/mime-types": "^2.1.1",
56
- "@types/node": "^18.15.13",
56
+ "@types/node": "^18.16.0",
57
57
  "bumpp": "^9.1.0",
58
58
  "conventional-changelog-cli": "^2.2.2",
59
59
  "eslint": "^8.39.0",
60
60
  "mockjs": "^1.1.0",
61
- "prettier": "^2.8.7",
61
+ "prettier": "^2.8.8",
62
62
  "tsup": "^6.7.0",
63
63
  "typescript": "^5.0.4",
64
- "vite": "^4.3.1",
65
- "vitepress": "1.0.0-alpha.73",
66
- "vue": "^3.2.47"
64
+ "vitepress": "1.0.0-alpha.74"
67
65
  },
68
66
  "peerDependencies": {
69
67
  "vite": ">=3.0.0"