@modern-js/server 2.15.1-alpha.0 → 2.17.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/CHANGELOG.md +25 -0
- package/dist/cjs/constants.js +12 -28
- package/dist/cjs/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +14 -32
- package/dist/cjs/dev-tools/dev-middleware/hmr-client/index.js +24 -42
- package/dist/cjs/dev-tools/dev-middleware/index.js +45 -50
- package/dist/cjs/dev-tools/dev-middleware/socketServer.js +48 -46
- package/dist/cjs/dev-tools/https/index.js +21 -38
- package/dist/cjs/dev-tools/mock/getMockData.js +33 -33
- package/dist/cjs/dev-tools/mock/index.js +67 -47
- package/dist/cjs/dev-tools/register/index.js +59 -70
- package/dist/cjs/dev-tools/watcher/dependencyTree.js +52 -55
- package/dist/cjs/dev-tools/watcher/index.js +52 -53
- package/dist/cjs/dev-tools/watcher/statsCache.js +37 -47
- package/dist/cjs/index.js +16 -28
- package/dist/cjs/server/devServer.js +163 -109
- package/dist/cjs/server/index.js +11 -29
- package/dist/cjs/types.js +4 -15
- package/dist/esm/constants.js +19 -20
- package/dist/esm/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +43 -44
- package/dist/esm/dev-tools/dev-middleware/hmr-client/index.js +148 -157
- package/dist/esm/dev-tools/dev-middleware/index.js +307 -291
- package/dist/esm/dev-tools/dev-middleware/socketServer.js +216 -202
- package/dist/esm/dev-tools/https/index.js +189 -182
- package/dist/esm/dev-tools/mock/getMockData.js +297 -278
- package/dist/esm/dev-tools/mock/index.js +198 -192
- package/dist/esm/dev-tools/register/index.js +141 -141
- package/dist/esm/dev-tools/watcher/dependencyTree.js +153 -138
- package/dist/esm/dev-tools/watcher/index.js +187 -175
- package/dist/esm/dev-tools/watcher/statsCache.js +118 -116
- package/dist/esm/index.js +9 -8
- package/dist/esm/server/devServer.js +803 -766
- package/dist/esm/server/index.js +80 -76
- package/dist/esm/types.js +1 -1
- package/dist/esm-node/constants.js +4 -5
- package/dist/esm-node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +2 -11
- package/dist/esm-node/dev-tools/dev-middleware/hmr-client/index.js +125 -139
- package/dist/esm-node/dev-tools/dev-middleware/index.js +31 -17
- package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +33 -12
- package/dist/esm-node/dev-tools/https/index.js +13 -15
- package/dist/esm-node/dev-tools/mock/getMockData.js +20 -12
- package/dist/esm-node/dev-tools/mock/index.js +7 -7
- package/dist/esm-node/dev-tools/register/index.js +38 -29
- package/dist/esm-node/dev-tools/watcher/dependencyTree.js +32 -21
- package/dist/esm-node/dev-tools/watcher/index.js +31 -18
- package/dist/esm-node/dev-tools/watcher/statsCache.js +18 -8
- package/dist/esm-node/index.js +2 -5
- package/dist/esm-node/server/devServer.js +87 -62
- package/dist/esm-node/server/index.js +1 -4
- package/dist/esm-node/types.js +1 -0
- package/package.json +13 -9
- package/dist/js/modern/constants.js +0 -19
- package/dist/js/modern/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -41
- package/dist/js/modern/dev-tools/dev-middleware/hmr-client/index.js +0 -143
- package/dist/js/modern/dev-tools/dev-middleware/index.js +0 -94
- package/dist/js/modern/dev-tools/dev-middleware/socket-server.js +0 -132
- package/dist/js/modern/dev-tools/https/index.js +0 -49
- package/dist/js/modern/dev-tools/mock/getMockData.js +0 -114
- package/dist/js/modern/dev-tools/mock/index.js +0 -54
- package/dist/js/modern/dev-tools/register/index.js +0 -111
- package/dist/js/modern/dev-tools/watcher/dependency-tree.js +0 -59
- package/dist/js/modern/dev-tools/watcher/index.js +0 -106
- package/dist/js/modern/dev-tools/watcher/stats-cache.js +0 -58
- package/dist/js/modern/index.js +0 -12
- package/dist/js/modern/server/dev-server.js +0 -293
- package/dist/js/modern/server/index.js +0 -16
- package/dist/js/modern/types.js +0 -0
- package/dist/js/node/constants.js +0 -42
- package/dist/js/node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -65
- package/dist/js/node/dev-tools/dev-middleware/hmr-client/index.js +0 -152
- package/dist/js/node/dev-tools/dev-middleware/index.js +0 -119
- package/dist/js/node/dev-tools/dev-middleware/socket-server.js +0 -159
- package/dist/js/node/dev-tools/https/index.js +0 -72
- package/dist/js/node/dev-tools/mock/getMockData.js +0 -135
- package/dist/js/node/dev-tools/mock/index.js +0 -83
- package/dist/js/node/dev-tools/register/index.js +0 -138
- package/dist/js/node/dev-tools/watcher/dependency-tree.js +0 -89
- package/dist/js/node/dev-tools/watcher/index.js +0 -135
- package/dist/js/node/dev-tools/watcher/stats-cache.js +0 -87
- package/dist/js/node/index.js +0 -35
- package/dist/js/node/server/dev-server.js +0 -310
- package/dist/js/node/server/index.js +0 -39
- package/dist/js/node/types.js +0 -15
- package/dist/js/treeshaking/constants.js +0 -21
- package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -51
- package/dist/js/treeshaking/dev-tools/dev-middleware/hmr-client/index.js +0 -157
- package/dist/js/treeshaking/dev-tools/dev-middleware/index.js +0 -322
- package/dist/js/treeshaking/dev-tools/dev-middleware/socket-server.js +0 -209
- package/dist/js/treeshaking/dev-tools/https/index.js +0 -193
- package/dist/js/treeshaking/dev-tools/mock/getMockData.js +0 -327
- package/dist/js/treeshaking/dev-tools/mock/index.js +0 -191
- package/dist/js/treeshaking/dev-tools/register/index.js +0 -153
- package/dist/js/treeshaking/dev-tools/watcher/dependency-tree.js +0 -150
- package/dist/js/treeshaking/dev-tools/watcher/index.js +0 -200
- package/dist/js/treeshaking/dev-tools/watcher/stats-cache.js +0 -128
- package/dist/js/treeshaking/index.js +0 -9
- package/dist/js/treeshaking/server/dev-server.js +0 -799
- package/dist/js/treeshaking/server/index.js +0 -92
- package/dist/js/treeshaking/types.js +0 -1
|
@@ -1,45 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var mock_exports = {};
|
|
29
|
-
__export(mock_exports, {
|
|
30
|
-
createMockHandler: () => createMockHandler
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createMockHandler", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => createMockHandler
|
|
31
8
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
9
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
10
|
+
const _utils = require("@modern-js/utils");
|
|
11
|
+
const _prodserver = require("@modern-js/prod-server");
|
|
12
|
+
const _getMockData = /* @__PURE__ */ _interop_require_wildcard(require("./getMockData"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
19
|
+
if (typeof WeakMap !== "function")
|
|
20
|
+
return null;
|
|
21
|
+
var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
|
|
22
|
+
var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
return (_getRequireWildcardCache = function(nodeInterop2) {
|
|
24
|
+
return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
|
|
25
|
+
})(nodeInterop);
|
|
26
|
+
}
|
|
27
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
28
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
29
|
+
return obj;
|
|
30
|
+
}
|
|
31
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
32
|
+
return {
|
|
33
|
+
default: obj
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
37
|
+
if (cache && cache.has(obj)) {
|
|
38
|
+
return cache.get(obj);
|
|
39
|
+
}
|
|
40
|
+
var newObj = {};
|
|
41
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
42
|
+
for (var key in obj) {
|
|
43
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
44
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
45
|
+
if (desc && (desc.get || desc.set)) {
|
|
46
|
+
Object.defineProperty(newObj, key, desc);
|
|
47
|
+
} else {
|
|
48
|
+
newObj[key] = obj[key];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
newObj.default = obj;
|
|
53
|
+
if (cache) {
|
|
54
|
+
cache.set(obj, newObj);
|
|
55
|
+
}
|
|
56
|
+
return newObj;
|
|
57
|
+
}
|
|
37
58
|
const createMockHandler = ({ pwd }) => {
|
|
38
|
-
const exts = [
|
|
59
|
+
const exts = [
|
|
60
|
+
".ts",
|
|
61
|
+
".js"
|
|
62
|
+
];
|
|
39
63
|
let filepath = "";
|
|
40
64
|
for (const ext of exts) {
|
|
41
|
-
const maybeMatch =
|
|
42
|
-
if (
|
|
65
|
+
const maybeMatch = _path.default.join(pwd, `${_prodserver.AGGRED_DIR.mock}/index${ext}`);
|
|
66
|
+
if (_utils.fs.existsSync(maybeMatch)) {
|
|
43
67
|
filepath = maybeMatch;
|
|
44
68
|
break;
|
|
45
69
|
}
|
|
@@ -47,27 +71,27 @@ const createMockHandler = ({ pwd }) => {
|
|
|
47
71
|
if (!filepath) {
|
|
48
72
|
return null;
|
|
49
73
|
}
|
|
50
|
-
const mod = (0,
|
|
74
|
+
const mod = (0, _utils.compatRequire)(filepath, false);
|
|
51
75
|
const { default: mockModule = mod, config } = mod;
|
|
52
|
-
if ((config
|
|
76
|
+
if ((config === null || config === void 0 ? void 0 : config.enable) === false) {
|
|
53
77
|
return null;
|
|
54
78
|
}
|
|
55
79
|
if (!mockModule) {
|
|
56
80
|
throw new Error(`Mock file ${filepath} parsed failed!`);
|
|
57
81
|
}
|
|
58
|
-
const apiList = (0,
|
|
82
|
+
const apiList = (0, _getMockData.default)(mockModule);
|
|
59
83
|
if (!apiList || apiList.length === 0) {
|
|
60
84
|
return null;
|
|
61
85
|
}
|
|
62
86
|
return async (context, next) => {
|
|
63
|
-
if (typeof (config
|
|
87
|
+
if (typeof (config === null || config === void 0 ? void 0 : config.enable) === "function") {
|
|
64
88
|
const enableMock = config.enable(context.req, context.res);
|
|
65
89
|
if (!enableMock) {
|
|
66
90
|
return next();
|
|
67
91
|
}
|
|
68
92
|
}
|
|
69
93
|
const { res } = context;
|
|
70
|
-
const matched = (0,
|
|
94
|
+
const matched = (0, _getMockData.getMatched)(context, apiList);
|
|
71
95
|
if (!matched) {
|
|
72
96
|
return next();
|
|
73
97
|
}
|
|
@@ -75,7 +99,3 @@ const createMockHandler = ({ pwd }) => {
|
|
|
75
99
|
return matched.handler(context, next);
|
|
76
100
|
};
|
|
77
101
|
};
|
|
78
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
79
|
-
0 && (module.exports = {
|
|
80
|
-
createMockHandler
|
|
81
|
-
});
|
|
@@ -1,39 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var register_exports = {};
|
|
29
|
-
__export(register_exports, {
|
|
30
|
-
enableRegister: () => enableRegister
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "enableRegister", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => enableRegister
|
|
31
8
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
9
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
10
|
+
const _serverutils = require("@modern-js/server-utils");
|
|
11
|
+
const _utils = require("@modern-js/utils");
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const debug = (0, _utils.createDebugger)("server");
|
|
37
18
|
const checkDep = (depName, paths) => {
|
|
38
19
|
let packagePath = "";
|
|
39
20
|
try {
|
|
@@ -45,31 +26,42 @@ const checkDep = (depName, paths) => {
|
|
|
45
26
|
return Boolean(packagePath);
|
|
46
27
|
};
|
|
47
28
|
const enableRegister = (projectRoot, config) => {
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
const registerDirs = [
|
|
30
|
+
"./api",
|
|
31
|
+
"./server",
|
|
32
|
+
"./config/mock",
|
|
33
|
+
"./shared"
|
|
34
|
+
];
|
|
50
35
|
const TS_CONFIG_FILENAME = `tsconfig.json`;
|
|
51
|
-
const tsconfigPath =
|
|
52
|
-
const isTsProject =
|
|
53
|
-
const existTsNode = checkDep("ts-node", [
|
|
54
|
-
|
|
36
|
+
const tsconfigPath = _path.default.resolve(projectRoot, TS_CONFIG_FILENAME);
|
|
37
|
+
const isTsProject = _utils.fs.existsSync(tsconfigPath);
|
|
38
|
+
const existTsNode = checkDep("ts-node", [
|
|
39
|
+
projectRoot
|
|
40
|
+
]);
|
|
41
|
+
const existTsConfigPaths = checkDep("tsconfig-paths", [
|
|
42
|
+
projectRoot
|
|
43
|
+
]);
|
|
55
44
|
if (isTsProject && existTsNode && existTsConfigPaths) {
|
|
45
|
+
var _config_output_distPath;
|
|
56
46
|
debug("use ts-node");
|
|
57
|
-
const distPath = ((
|
|
47
|
+
const distPath = ((_config_output_distPath = config.output.distPath) === null || _config_output_distPath === void 0 ? void 0 : _config_output_distPath.root) || "dist";
|
|
58
48
|
const tsNode = require("ts-node");
|
|
59
49
|
const tsConfigPaths = require("tsconfig-paths");
|
|
60
50
|
const { alias } = config.source;
|
|
61
|
-
const aliasConfig = (0,
|
|
51
|
+
const aliasConfig = (0, _utils.getAliasConfig)(alias, {
|
|
62
52
|
appDirectory: projectRoot,
|
|
63
53
|
tsconfigPath
|
|
64
54
|
});
|
|
65
55
|
const { paths = {}, absoluteBaseUrl = "./" } = aliasConfig;
|
|
66
56
|
const tsPaths = Object.keys(paths).reduce((o, key) => {
|
|
67
57
|
let tsPath = paths[key];
|
|
68
|
-
if (typeof tsPath === "string" &&
|
|
69
|
-
tsPath =
|
|
58
|
+
if (typeof tsPath === "string" && _path.default.isAbsolute(tsPath)) {
|
|
59
|
+
tsPath = _path.default.relative(absoluteBaseUrl, tsPath);
|
|
70
60
|
}
|
|
71
61
|
if (typeof tsPath === "string") {
|
|
72
|
-
tsPath = [
|
|
62
|
+
tsPath = [
|
|
63
|
+
tsPath
|
|
64
|
+
];
|
|
73
65
|
}
|
|
74
66
|
return {
|
|
75
67
|
...o,
|
|
@@ -86,45 +78,42 @@ const enableRegister = (projectRoot, config) => {
|
|
|
86
78
|
// for env.d.ts, https://www.npmjs.com/package/ts-node#missing-types
|
|
87
79
|
files: true,
|
|
88
80
|
transpileOnly: true,
|
|
89
|
-
ignore: [
|
|
81
|
+
ignore: [
|
|
82
|
+
"(?:^|/)node_modules/",
|
|
83
|
+
`(?:^|/)${distPath}/`
|
|
84
|
+
]
|
|
90
85
|
});
|
|
91
86
|
} else {
|
|
87
|
+
var _config_tools, _config_server;
|
|
92
88
|
debug("use @babel/register");
|
|
93
|
-
const babelConfig = (0,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
server: {
|
|
99
|
-
compiler: (_c = config.server) == null ? void 0 : _c.compiler
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
tsconfigPath,
|
|
104
|
-
syntax: "es6+",
|
|
105
|
-
type: "commonjs"
|
|
89
|
+
const babelConfig = (0, _serverutils.resolveBabelConfig)(projectRoot, {
|
|
90
|
+
...config.source,
|
|
91
|
+
babelConfig: (_config_tools = config.tools) === null || _config_tools === void 0 ? void 0 : _config_tools.babel,
|
|
92
|
+
server: {
|
|
93
|
+
compiler: (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.compiler
|
|
106
94
|
}
|
|
107
|
-
|
|
95
|
+
}, {
|
|
96
|
+
tsconfigPath,
|
|
97
|
+
syntax: "es6+",
|
|
98
|
+
type: "commonjs"
|
|
99
|
+
});
|
|
108
100
|
return require("@babel/register")({
|
|
109
101
|
...babelConfig,
|
|
110
102
|
only: [
|
|
111
103
|
function(filePath) {
|
|
112
|
-
if (filePath.includes(`node_modules${
|
|
104
|
+
if (filePath.includes(`node_modules${_path.default.sep}.modern-js`)) {
|
|
113
105
|
return true;
|
|
114
106
|
}
|
|
115
|
-
return registerDirs.some(
|
|
116
|
-
(registerDir) => filePath.startsWith(import_path.default.join(projectRoot, registerDir))
|
|
117
|
-
);
|
|
107
|
+
return registerDirs.some((registerDir) => filePath.startsWith(_path.default.join(projectRoot, registerDir)));
|
|
118
108
|
}
|
|
119
109
|
],
|
|
120
|
-
extensions: [
|
|
110
|
+
extensions: [
|
|
111
|
+
".js",
|
|
112
|
+
".ts"
|
|
113
|
+
],
|
|
121
114
|
babelrc: false,
|
|
122
115
|
configFile: false,
|
|
123
116
|
root: projectRoot
|
|
124
117
|
});
|
|
125
118
|
}
|
|
126
119
|
};
|
|
127
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
128
|
-
0 && (module.exports = {
|
|
129
|
-
enableRegister
|
|
130
|
-
});
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
8
6
|
for (var name in all)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var dependencyTree_exports = {};
|
|
29
|
-
__export(dependencyTree_exports, {
|
|
30
|
-
DependencyTree: () => DependencyTree,
|
|
31
|
-
defaultIgnores: () => defaultIgnores
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
defaultIgnores: () => defaultIgnores,
|
|
14
|
+
DependencyTree: () => DependencyTree
|
|
32
15
|
});
|
|
33
|
-
|
|
34
|
-
|
|
16
|
+
const _minimatch = /* @__PURE__ */ _interop_require_default(require("minimatch"));
|
|
17
|
+
function _define_property(obj, key, value) {
|
|
18
|
+
if (key in obj) {
|
|
19
|
+
Object.defineProperty(obj, key, {
|
|
20
|
+
value,
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true
|
|
24
|
+
});
|
|
25
|
+
} else {
|
|
26
|
+
obj[key] = value;
|
|
27
|
+
}
|
|
28
|
+
return obj;
|
|
29
|
+
}
|
|
30
|
+
function _interop_require_default(obj) {
|
|
31
|
+
return obj && obj.__esModule ? obj : {
|
|
32
|
+
default: obj
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
35
|
const defaultIgnores = [
|
|
36
36
|
"**/bower_components/**",
|
|
37
37
|
"**/coverage/**",
|
|
@@ -41,25 +41,21 @@ const defaultIgnores = [
|
|
|
41
41
|
"**/*.log"
|
|
42
42
|
];
|
|
43
43
|
class DependencyTree {
|
|
44
|
-
constructor() {
|
|
45
|
-
this.tree = /* @__PURE__ */ new Map();
|
|
46
|
-
this.ignore = [...defaultIgnores];
|
|
47
|
-
}
|
|
48
44
|
getNode(path) {
|
|
49
45
|
return this.tree.get(path);
|
|
50
46
|
}
|
|
51
47
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
* update dependency tree
|
|
49
|
+
*
|
|
50
|
+
* @param cache
|
|
51
|
+
*/
|
|
56
52
|
update(cache) {
|
|
57
53
|
this.tree.clear();
|
|
58
54
|
Object.keys(cache).forEach((path) => {
|
|
59
55
|
if (!this.shouldIgnore(path)) {
|
|
60
|
-
const
|
|
61
|
-
this.tree.set(
|
|
62
|
-
module
|
|
56
|
+
const module = cache[path];
|
|
57
|
+
this.tree.set(module.filename, {
|
|
58
|
+
module,
|
|
63
59
|
parent: /* @__PURE__ */ new Set(),
|
|
64
60
|
children: /* @__PURE__ */ new Set()
|
|
65
61
|
});
|
|
@@ -86,17 +82,18 @@ class DependencyTree {
|
|
|
86
82
|
}
|
|
87
83
|
}
|
|
88
84
|
shouldIgnore(path) {
|
|
89
|
-
return !path || Boolean(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
85
|
+
return !path || Boolean(this.ignore.find((rule) => _minimatch.default.match([
|
|
86
|
+
path
|
|
87
|
+
], rule, {
|
|
88
|
+
dot: true
|
|
89
|
+
}).length > 0));
|
|
90
|
+
}
|
|
91
|
+
constructor() {
|
|
92
|
+
_define_property(this, "tree", void 0);
|
|
93
|
+
_define_property(this, "ignore", void 0);
|
|
94
|
+
this.tree = /* @__PURE__ */ new Map();
|
|
95
|
+
this.ignore = [
|
|
96
|
+
...defaultIgnores
|
|
97
|
+
];
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
-
0 && (module.exports = {
|
|
100
|
-
DependencyTree,
|
|
101
|
-
defaultIgnores
|
|
102
|
-
});
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
8
6
|
for (var name in all)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var watcher_exports = {};
|
|
29
|
-
__export(watcher_exports, {
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
30
13
|
default: () => Watcher,
|
|
31
14
|
defaultWatchOptions: () => defaultWatchOptions,
|
|
32
15
|
getWatchedFiles: () => getWatchedFiles,
|
|
33
16
|
mergeWatchOptions: () => mergeWatchOptions
|
|
34
17
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
18
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
19
|
+
const _utils = require("@modern-js/utils");
|
|
20
|
+
const _dependencyTree = require("./dependencyTree");
|
|
21
|
+
const _statsCache = require("./statsCache");
|
|
22
|
+
function _define_property(obj, key, value) {
|
|
23
|
+
if (key in obj) {
|
|
24
|
+
Object.defineProperty(obj, key, {
|
|
25
|
+
value,
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
obj[key] = value;
|
|
32
|
+
}
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
function _interop_require_default(obj) {
|
|
36
|
+
return obj && obj.__esModule ? obj : {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
40
|
const defaultWatchOptions = {
|
|
41
41
|
// 初始化的时候不触发 add、addDir 事件
|
|
42
42
|
ignoreInitial: true,
|
|
@@ -47,7 +47,7 @@ const getWatchedFiles = (watcher) => {
|
|
|
47
47
|
const files = [];
|
|
48
48
|
Object.keys(watched).forEach((dir) => {
|
|
49
49
|
watched[dir].forEach((fileName) => {
|
|
50
|
-
files.push(
|
|
50
|
+
files.push(_path.default.join(dir, fileName));
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
return files;
|
|
@@ -60,7 +60,9 @@ const mergeWatchOptions = (options) => {
|
|
|
60
60
|
const { ignored } = watchOptions;
|
|
61
61
|
const finalIgnored = ignored ? [
|
|
62
62
|
defaultWatchOptions.ignored,
|
|
63
|
-
...Array.isArray(ignored) ? ignored : [
|
|
63
|
+
...Array.isArray(ignored) ? ignored : [
|
|
64
|
+
ignored
|
|
65
|
+
]
|
|
64
66
|
] : ignored;
|
|
65
67
|
if (finalIgnored) {
|
|
66
68
|
watchOptions.ignored = finalIgnored;
|
|
@@ -73,26 +75,25 @@ const mergeWatchOptions = (options) => {
|
|
|
73
75
|
return finalWatchOptions;
|
|
74
76
|
};
|
|
75
77
|
class Watcher {
|
|
76
|
-
constructor() {
|
|
77
|
-
this.dependencyTree = null;
|
|
78
|
-
}
|
|
79
78
|
listen(files, options, callback) {
|
|
80
79
|
const watched = files.filter(Boolean);
|
|
81
80
|
const filenames = watched.map((filename) => filename.replace(/\\/g, "/"));
|
|
82
|
-
const cache = new
|
|
83
|
-
const watcher =
|
|
81
|
+
const cache = new _statsCache.StatsCache();
|
|
82
|
+
const watcher = _utils.chokidar.watch(filenames, options);
|
|
84
83
|
watcher.on("ready", () => {
|
|
85
84
|
cache.add(getWatchedFiles(watcher));
|
|
86
85
|
});
|
|
87
86
|
watcher.on("change", (changed) => {
|
|
88
|
-
if (!
|
|
87
|
+
if (!_utils.fs.existsSync(changed) || cache.isDiff(changed)) {
|
|
89
88
|
cache.refresh(changed);
|
|
90
89
|
callback(changed, "change");
|
|
91
90
|
}
|
|
92
91
|
});
|
|
93
92
|
watcher.on("add", (changed) => {
|
|
94
93
|
if (!cache.has(changed)) {
|
|
95
|
-
cache.add([
|
|
94
|
+
cache.add([
|
|
95
|
+
changed
|
|
96
|
+
]);
|
|
96
97
|
callback(changed, "add");
|
|
97
98
|
}
|
|
98
99
|
});
|
|
@@ -103,15 +104,15 @@ class Watcher {
|
|
|
103
104
|
this.watcher = watcher;
|
|
104
105
|
}
|
|
105
106
|
createDepTree() {
|
|
106
|
-
this.dependencyTree = new
|
|
107
|
+
this.dependencyTree = new _dependencyTree.DependencyTree();
|
|
107
108
|
}
|
|
108
109
|
updateDepTree() {
|
|
109
|
-
var
|
|
110
|
-
(
|
|
110
|
+
var _this_dependencyTree;
|
|
111
|
+
(_this_dependencyTree = this.dependencyTree) === null || _this_dependencyTree === void 0 ? void 0 : _this_dependencyTree.update(require.cache);
|
|
111
112
|
}
|
|
112
113
|
cleanDepCache(filepath) {
|
|
113
|
-
var
|
|
114
|
-
const node = (
|
|
114
|
+
var _this_dependencyTree;
|
|
115
|
+
const node = (_this_dependencyTree = this.dependencyTree) === null || _this_dependencyTree === void 0 ? void 0 : _this_dependencyTree.getNode(filepath);
|
|
115
116
|
if (node && require.cache[filepath]) {
|
|
116
117
|
delete require.cache[filepath];
|
|
117
118
|
for (const parentNode of node.parent.values()) {
|
|
@@ -122,10 +123,8 @@ class Watcher {
|
|
|
122
123
|
close() {
|
|
123
124
|
return this.watcher.close();
|
|
124
125
|
}
|
|
126
|
+
constructor() {
|
|
127
|
+
_define_property(this, "dependencyTree", null);
|
|
128
|
+
_define_property(this, "watcher", void 0);
|
|
129
|
+
}
|
|
125
130
|
}
|
|
126
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
127
|
-
0 && (module.exports = {
|
|
128
|
-
defaultWatchOptions,
|
|
129
|
-
getWatchedFiles,
|
|
130
|
-
mergeWatchOptions
|
|
131
|
-
});
|