vite-plugin-mock-dev-server 1.4.2 → 1.4.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/dist/index.cjs +46 -40
- package/dist/index.js +20 -14
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6,8 +6,8 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
for (var
|
|
10
|
-
__defProp(target,
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
11
|
};
|
|
12
12
|
var __copyProps = (to, from, except, desc) => {
|
|
13
13
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -60,10 +60,7 @@ var import_utils3 = require("@pengzhanbo/utils");
|
|
|
60
60
|
var import_fast_glob = __toESM(require("fast-glob"), 1);
|
|
61
61
|
var import_is_core_module = __toESM(require("is-core-module"), 1);
|
|
62
62
|
var import_pluginutils = require("@rollup/pluginutils");
|
|
63
|
-
|
|
64
|
-
// package.json
|
|
65
|
-
var name = "vite-plugin-mock-dev-server";
|
|
66
|
-
var version = "1.4.2";
|
|
63
|
+
var import_picocolors3 = __toESM(require("picocolors"), 1);
|
|
67
64
|
|
|
68
65
|
// src/compiler.ts
|
|
69
66
|
var import_node_fs2 = __toESM(require("fs"), 1);
|
|
@@ -420,11 +417,19 @@ async function generateMockServer(ctx, config, options) {
|
|
|
420
417
|
];
|
|
421
418
|
try {
|
|
422
419
|
if (import_node_path3.default.isAbsolute(outputDir)) {
|
|
423
|
-
for (const { filename } of outputList)
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
420
|
+
for (const { filename } of outputList) {
|
|
421
|
+
if (import_node_fs3.default.existsSync(filename))
|
|
422
|
+
await import_promises.default.rm(filename);
|
|
423
|
+
}
|
|
424
|
+
config.logger.info(`${import_picocolors3.default.green("\u2713")} generate mock server in ${import_picocolors3.default.cyan(outputDir)}`);
|
|
425
|
+
for (const { filename, source } of outputList) {
|
|
426
|
+
import_node_fs3.default.mkdirSync(import_node_path3.default.dirname(filename), { recursive: true });
|
|
427
427
|
await import_promises.default.writeFile(filename, source, "utf-8");
|
|
428
|
+
const sourceSize = (source.length / 1024).toFixed(2);
|
|
429
|
+
const name = import_node_path3.default.relative(outputDir, filename);
|
|
430
|
+
const space = name.length < 30 ? " ".repeat(30 - name.length) : "";
|
|
431
|
+
config.logger.info(` ${import_picocolors3.default.green(name)}${space}${import_picocolors3.default.bold(import_picocolors3.default.dim(`${sourceSize} kB`))}`);
|
|
432
|
+
}
|
|
428
433
|
} else {
|
|
429
434
|
for (const { filename, source } of outputList) {
|
|
430
435
|
ctx.emitFile({
|
|
@@ -434,12 +439,13 @@ async function generateMockServer(ctx, config, options) {
|
|
|
434
439
|
});
|
|
435
440
|
}
|
|
436
441
|
}
|
|
437
|
-
} catch {
|
|
442
|
+
} catch (e) {
|
|
443
|
+
console.error(e);
|
|
438
444
|
}
|
|
439
445
|
}
|
|
440
446
|
function getMockDependencies(deps, alias) {
|
|
441
447
|
const list = /* @__PURE__ */ new Set();
|
|
442
|
-
const excludeDeps = [
|
|
448
|
+
const excludeDeps = ["vite-plugin-mock-dev-server", "connect", "cors"];
|
|
443
449
|
const isAlias = (p) => alias.find(({ find }) => aliasMatches(find, p));
|
|
444
450
|
Object.keys(deps).forEach((mPath) => {
|
|
445
451
|
const imports = deps[mPath].imports.filter((_) => _.external && !_.path.startsWith("<define:") && !isAlias(_.path)).map((_) => _.path);
|
|
@@ -461,7 +467,7 @@ function generatePackageJson(pkg, mockDeps) {
|
|
|
461
467
|
},
|
|
462
468
|
dependencies: {
|
|
463
469
|
"connect": "^3.7.0",
|
|
464
|
-
"vite-plugin-mock-dev-server": `^${
|
|
470
|
+
"vite-plugin-mock-dev-server": `^${"1.4.3"}`,
|
|
465
471
|
"cors": "^2.8.5"
|
|
466
472
|
},
|
|
467
473
|
pnpm: { peerDependencyRules: { ignoreMissing: ["vite"] } }
|
|
@@ -476,7 +482,7 @@ function generatorServerEntryCode(httpProxies, wsProxies, cookiesOptions = {}, p
|
|
|
476
482
|
return `import { createServer } from 'node:http';
|
|
477
483
|
import connect from 'connect';
|
|
478
484
|
import corsMiddleware from 'cors';
|
|
479
|
-
import { baseMiddleware,
|
|
485
|
+
import { baseMiddleware, createLogger, mockWebSocket } from 'vite-plugin-mock-dev-server';
|
|
480
486
|
import mockData from './mock-data.js';
|
|
481
487
|
|
|
482
488
|
const app = connect();
|
|
@@ -555,7 +561,7 @@ var import_cookies = __toESM(require("cookies"), 1);
|
|
|
555
561
|
var import_http_status = __toESM(require("http-status"), 1);
|
|
556
562
|
var mime = __toESM(require("mime-types"), 1);
|
|
557
563
|
var import_path_to_regexp3 = require("path-to-regexp");
|
|
558
|
-
var
|
|
564
|
+
var import_picocolors4 = __toESM(require("picocolors"), 1);
|
|
559
565
|
|
|
560
566
|
// src/matchingWeight.ts
|
|
561
567
|
var import_utils5 = require("@pengzhanbo/utils");
|
|
@@ -627,11 +633,11 @@ function defaultPriority(rules) {
|
|
|
627
633
|
pattern = "",
|
|
628
634
|
modifier,
|
|
629
635
|
prefix,
|
|
630
|
-
name
|
|
636
|
+
name
|
|
631
637
|
} = isDynamic ? token : {};
|
|
632
638
|
const isGlob = pattern && pattern.includes(".*");
|
|
633
639
|
const isSlash = prefix === "/";
|
|
634
|
-
const isNamed = (0, import_utils5.isString)(
|
|
640
|
+
const isNamed = (0, import_utils5.isString)(name);
|
|
635
641
|
exp += isDynamic && isSlash ? 1 : 0;
|
|
636
642
|
if (i === tokens.length - 1 && isGlob) {
|
|
637
643
|
weight += 5 * 10 ** (tokens.length === 1 ? highest + 1 : highest);
|
|
@@ -853,10 +859,10 @@ function baseMiddleware(mockLoader, {
|
|
|
853
859
|
}
|
|
854
860
|
if (!mock) {
|
|
855
861
|
const matched = mockUrls.map(
|
|
856
|
-
(m) => m === _mockUrl ?
|
|
862
|
+
(m) => m === _mockUrl ? import_picocolors4.default.underline(import_picocolors4.default.bold(m)) : import_picocolors4.default.dim(m)
|
|
857
863
|
).join(", ");
|
|
858
864
|
logger.warn(
|
|
859
|
-
`${
|
|
865
|
+
`${import_picocolors4.default.green(
|
|
860
866
|
pathname
|
|
861
867
|
)} matches ${matched} , but mock data is not found.`
|
|
862
868
|
);
|
|
@@ -885,10 +891,10 @@ function baseMiddleware(mockLoader, {
|
|
|
885
891
|
await provideCookies(request, response, mock, logger);
|
|
886
892
|
logger.info(requestLog(request, filepath), logLevel);
|
|
887
893
|
logger.debug(
|
|
888
|
-
`${
|
|
894
|
+
`${import_picocolors4.default.magenta("DEBUG")} ${import_picocolors4.default.underline(
|
|
889
895
|
pathname
|
|
890
896
|
)} matches: [ ${mockUrls.map(
|
|
891
|
-
(m) => m === _mockUrl ?
|
|
897
|
+
(m) => m === _mockUrl ? import_picocolors4.default.underline(import_picocolors4.default.bold(m)) : import_picocolors4.default.dim(m)
|
|
892
898
|
).join(", ")} ]
|
|
893
899
|
`
|
|
894
900
|
);
|
|
@@ -899,11 +905,11 @@ function baseMiddleware(mockLoader, {
|
|
|
899
905
|
sendData(response, content, type);
|
|
900
906
|
} catch (e) {
|
|
901
907
|
logger.error(
|
|
902
|
-
`${
|
|
908
|
+
`${import_picocolors4.default.red(
|
|
903
909
|
`mock error at ${pathname}`
|
|
904
910
|
)}
|
|
905
911
|
${e}
|
|
906
|
-
at body (${
|
|
912
|
+
at body (${import_picocolors4.default.underline(filepath)})`,
|
|
907
913
|
logLevel
|
|
908
914
|
);
|
|
909
915
|
responseStatus(response, 500);
|
|
@@ -917,11 +923,11 @@ ${e}
|
|
|
917
923
|
await responseFn(request, response, next);
|
|
918
924
|
} catch (e) {
|
|
919
925
|
logger.error(
|
|
920
|
-
`${
|
|
926
|
+
`${import_picocolors4.default.red(
|
|
921
927
|
`mock error at ${pathname}`
|
|
922
928
|
)}
|
|
923
929
|
${e}
|
|
924
|
-
at response (${
|
|
930
|
+
at response (${import_picocolors4.default.underline(filepath)})`,
|
|
925
931
|
logLevel
|
|
926
932
|
);
|
|
927
933
|
responseStatus(response, 500);
|
|
@@ -954,11 +960,11 @@ function fineMock(mockList, logger, {
|
|
|
954
960
|
} catch (e) {
|
|
955
961
|
const file = mock.__filepath__;
|
|
956
962
|
logger.error(
|
|
957
|
-
`${
|
|
963
|
+
`${import_picocolors4.default.red(
|
|
958
964
|
`mock error at ${pathname}`
|
|
959
965
|
)}
|
|
960
966
|
${e}
|
|
961
|
-
at validator (${
|
|
967
|
+
at validator (${import_picocolors4.default.underline(file)})`,
|
|
962
968
|
mock.log
|
|
963
969
|
);
|
|
964
970
|
return false;
|
|
@@ -989,11 +995,11 @@ async function provideHeaders(req, res, mock, logger) {
|
|
|
989
995
|
});
|
|
990
996
|
} catch (e) {
|
|
991
997
|
logger.error(
|
|
992
|
-
`${
|
|
998
|
+
`${import_picocolors4.default.red(
|
|
993
999
|
`mock error at ${req.url.split("?")[0]}`
|
|
994
1000
|
)}
|
|
995
1001
|
${e}
|
|
996
|
-
at headers (${
|
|
1002
|
+
at headers (${import_picocolors4.default.underline(filepath)})`,
|
|
997
1003
|
mock.log
|
|
998
1004
|
);
|
|
999
1005
|
}
|
|
@@ -1016,11 +1022,11 @@ async function provideCookies(req, res, mock, logger) {
|
|
|
1016
1022
|
});
|
|
1017
1023
|
} catch (e) {
|
|
1018
1024
|
logger.error(
|
|
1019
|
-
`${
|
|
1025
|
+
`${import_picocolors4.default.red(
|
|
1020
1026
|
`mock error at ${req.url.split("?")[0]}`
|
|
1021
1027
|
)}
|
|
1022
1028
|
${e}
|
|
1023
|
-
at cookies (${
|
|
1029
|
+
at cookies (${import_picocolors4.default.underline(filepath)})`,
|
|
1024
1030
|
mock.log
|
|
1025
1031
|
);
|
|
1026
1032
|
}
|
|
@@ -1054,15 +1060,15 @@ function getHTTPStatusText(status) {
|
|
|
1054
1060
|
function requestLog(request, filepath) {
|
|
1055
1061
|
const { url, method, query, params, body } = request;
|
|
1056
1062
|
let { pathname } = new URL(url, "http://example.com");
|
|
1057
|
-
pathname =
|
|
1063
|
+
pathname = import_picocolors4.default.green(decodeURIComponent(pathname));
|
|
1058
1064
|
const format = (prefix, data) => {
|
|
1059
|
-
return !data || (0, import_utils7.isEmptyObject)(data) ? "" : ` ${
|
|
1065
|
+
return !data || (0, import_utils7.isEmptyObject)(data) ? "" : ` ${import_picocolors4.default.gray(`${prefix}:`)}${JSON.stringify(data)}`;
|
|
1060
1066
|
};
|
|
1061
|
-
const ms =
|
|
1067
|
+
const ms = import_picocolors4.default.magenta(import_picocolors4.default.bold(method));
|
|
1062
1068
|
const qs = format("query", query);
|
|
1063
1069
|
const ps = format("params", params);
|
|
1064
1070
|
const bs = format("body", body);
|
|
1065
|
-
const file = ` ${
|
|
1071
|
+
const file = ` ${import_picocolors4.default.dim(import_picocolors4.default.underline(`(${filepath})`))}`;
|
|
1066
1072
|
return `${ms} ${pathname}${qs}${ps}${bs}${file}`;
|
|
1067
1073
|
}
|
|
1068
1074
|
|
|
@@ -1305,7 +1311,7 @@ var MockLoader = class extends import_node_events.default {
|
|
|
1305
1311
|
// src/ws.ts
|
|
1306
1312
|
var import_cookies2 = __toESM(require("cookies"), 1);
|
|
1307
1313
|
var import_path_to_regexp4 = require("path-to-regexp");
|
|
1308
|
-
var
|
|
1314
|
+
var import_picocolors5 = __toESM(require("picocolors"), 1);
|
|
1309
1315
|
var import_ws = require("ws");
|
|
1310
1316
|
function mockWebSocket({
|
|
1311
1317
|
loader,
|
|
@@ -1340,7 +1346,7 @@ function mockWebSocket({
|
|
|
1340
1346
|
wss.on("close", () => wssMap.delete(pathname));
|
|
1341
1347
|
wss.on("error", (e) => {
|
|
1342
1348
|
logger.error(
|
|
1343
|
-
`${
|
|
1349
|
+
`${import_picocolors5.default.red(
|
|
1344
1350
|
`WebSocket mock error at ${wss.path}`
|
|
1345
1351
|
)}
|
|
1346
1352
|
${e}
|
|
@@ -1350,7 +1356,7 @@ ${e}
|
|
|
1350
1356
|
});
|
|
1351
1357
|
} catch (e) {
|
|
1352
1358
|
logger.error(
|
|
1353
|
-
`${
|
|
1359
|
+
`${import_picocolors5.default.red(
|
|
1354
1360
|
`WebSocket mock error at ${wss.path}`
|
|
1355
1361
|
)}
|
|
1356
1362
|
${e}
|
|
@@ -1431,9 +1437,9 @@ ${e}
|
|
|
1431
1437
|
request.getCookie = cookies.get.bind(cookies);
|
|
1432
1438
|
wss.handleUpgrade(request, socket, head, (ws) => {
|
|
1433
1439
|
logger.info(
|
|
1434
|
-
`${
|
|
1440
|
+
`${import_picocolors5.default.magenta(import_picocolors5.default.bold("WebSocket"))} ${import_picocolors5.default.green(
|
|
1435
1441
|
req.url
|
|
1436
|
-
)} connected ${
|
|
1442
|
+
)} connected ${import_picocolors5.default.dim(`(${filepath})`)}`,
|
|
1437
1443
|
mock.log
|
|
1438
1444
|
);
|
|
1439
1445
|
wssContext.connectionList.push({ req: request, ws });
|
package/dist/index.js
CHANGED
|
@@ -10,10 +10,7 @@ import { toArray } from "@pengzhanbo/utils";
|
|
|
10
10
|
import fg from "fast-glob";
|
|
11
11
|
import isCore from "is-core-module";
|
|
12
12
|
import { createFilter } from "@rollup/pluginutils";
|
|
13
|
-
|
|
14
|
-
// package.json
|
|
15
|
-
var name = "vite-plugin-mock-dev-server";
|
|
16
|
-
var version = "1.4.2";
|
|
13
|
+
import c from "picocolors";
|
|
17
14
|
|
|
18
15
|
// src/compiler.ts
|
|
19
16
|
import fs2, { promises as fsp } from "node:fs";
|
|
@@ -370,11 +367,19 @@ async function generateMockServer(ctx, config, options) {
|
|
|
370
367
|
];
|
|
371
368
|
try {
|
|
372
369
|
if (path3.isAbsolute(outputDir)) {
|
|
373
|
-
for (const { filename } of outputList)
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
370
|
+
for (const { filename } of outputList) {
|
|
371
|
+
if (fs3.existsSync(filename))
|
|
372
|
+
await fsp2.rm(filename);
|
|
373
|
+
}
|
|
374
|
+
config.logger.info(`${c.green("\u2713")} generate mock server in ${c.cyan(outputDir)}`);
|
|
375
|
+
for (const { filename, source } of outputList) {
|
|
376
|
+
fs3.mkdirSync(path3.dirname(filename), { recursive: true });
|
|
377
377
|
await fsp2.writeFile(filename, source, "utf-8");
|
|
378
|
+
const sourceSize = (source.length / 1024).toFixed(2);
|
|
379
|
+
const name = path3.relative(outputDir, filename);
|
|
380
|
+
const space = name.length < 30 ? " ".repeat(30 - name.length) : "";
|
|
381
|
+
config.logger.info(` ${c.green(name)}${space}${c.bold(c.dim(`${sourceSize} kB`))}`);
|
|
382
|
+
}
|
|
378
383
|
} else {
|
|
379
384
|
for (const { filename, source } of outputList) {
|
|
380
385
|
ctx.emitFile({
|
|
@@ -384,12 +389,13 @@ async function generateMockServer(ctx, config, options) {
|
|
|
384
389
|
});
|
|
385
390
|
}
|
|
386
391
|
}
|
|
387
|
-
} catch {
|
|
392
|
+
} catch (e) {
|
|
393
|
+
console.error(e);
|
|
388
394
|
}
|
|
389
395
|
}
|
|
390
396
|
function getMockDependencies(deps, alias) {
|
|
391
397
|
const list = /* @__PURE__ */ new Set();
|
|
392
|
-
const excludeDeps = [
|
|
398
|
+
const excludeDeps = ["vite-plugin-mock-dev-server", "connect", "cors"];
|
|
393
399
|
const isAlias = (p) => alias.find(({ find }) => aliasMatches(find, p));
|
|
394
400
|
Object.keys(deps).forEach((mPath) => {
|
|
395
401
|
const imports = deps[mPath].imports.filter((_) => _.external && !_.path.startsWith("<define:") && !isAlias(_.path)).map((_) => _.path);
|
|
@@ -411,7 +417,7 @@ function generatePackageJson(pkg, mockDeps) {
|
|
|
411
417
|
},
|
|
412
418
|
dependencies: {
|
|
413
419
|
"connect": "^3.7.0",
|
|
414
|
-
"vite-plugin-mock-dev-server": `^${
|
|
420
|
+
"vite-plugin-mock-dev-server": `^${"1.4.3"}`,
|
|
415
421
|
"cors": "^2.8.5"
|
|
416
422
|
},
|
|
417
423
|
pnpm: { peerDependencyRules: { ignoreMissing: ["vite"] } }
|
|
@@ -426,7 +432,7 @@ function generatorServerEntryCode(httpProxies, wsProxies, cookiesOptions = {}, p
|
|
|
426
432
|
return `import { createServer } from 'node:http';
|
|
427
433
|
import connect from 'connect';
|
|
428
434
|
import corsMiddleware from 'cors';
|
|
429
|
-
import { baseMiddleware,
|
|
435
|
+
import { baseMiddleware, createLogger, mockWebSocket } from 'vite-plugin-mock-dev-server';
|
|
430
436
|
import mockData from './mock-data.js';
|
|
431
437
|
|
|
432
438
|
const app = connect();
|
|
@@ -590,11 +596,11 @@ function defaultPriority(rules) {
|
|
|
590
596
|
pattern = "",
|
|
591
597
|
modifier,
|
|
592
598
|
prefix,
|
|
593
|
-
name
|
|
599
|
+
name
|
|
594
600
|
} = isDynamic ? token : {};
|
|
595
601
|
const isGlob = pattern && pattern.includes(".*");
|
|
596
602
|
const isSlash = prefix === "/";
|
|
597
|
-
const isNamed = isString(
|
|
603
|
+
const isNamed = isString(name);
|
|
598
604
|
exp += isDynamic && isSlash ? 1 : 0;
|
|
599
605
|
if (i === tokens.length - 1 && isGlob) {
|
|
600
606
|
weight += 5 * 10 ** (tokens.length === 1 ? highest + 1 : highest);
|
package/package.json
CHANGED