@modern-js/prod-server 2.0.0-beta.3 → 2.0.0-beta.6
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 +139 -0
- package/dist/js/modern/constants.js +32 -25
- package/dist/js/modern/index.js +11 -6
- package/dist/js/modern/libs/context/context.js +52 -84
- package/dist/js/modern/libs/context/index.js +5 -2
- package/dist/js/modern/libs/hook-api/index.js +44 -35
- package/dist/js/modern/libs/hook-api/route.js +6 -7
- package/dist/js/modern/libs/hook-api/template.js +20 -34
- package/dist/js/modern/libs/loadConfig.js +45 -24
- package/dist/js/modern/libs/metrics.js +3 -4
- package/dist/js/modern/libs/proxy.js +68 -37
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
- package/dist/js/modern/libs/render/cache/index.js +88 -54
- package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
- package/dist/js/modern/libs/render/cache/spr.js +133 -117
- package/dist/js/modern/libs/render/cache/type.js +0 -1
- package/dist/js/modern/libs/render/cache/util.js +71 -39
- package/dist/js/modern/libs/render/index.js +76 -56
- package/dist/js/modern/libs/render/measure.js +38 -27
- package/dist/js/modern/libs/render/reader.js +65 -62
- package/dist/js/modern/libs/render/ssr.js +50 -32
- package/dist/js/modern/libs/render/static.js +50 -33
- package/dist/js/modern/libs/render/type.js +9 -6
- package/dist/js/modern/libs/route/index.js +8 -15
- package/dist/js/modern/libs/route/matcher.js +20 -34
- package/dist/js/modern/libs/route/route.js +9 -18
- package/dist/js/modern/libs/serve-file.js +33 -20
- package/dist/js/modern/server/index.js +150 -145
- package/dist/js/modern/server/modern-server-split.js +46 -12
- package/dist/js/modern/server/modern-server.js +384 -422
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +62 -43
- package/dist/js/modern/worker-server.js +34 -14
- package/dist/js/node/constants.js +53 -30
- package/dist/js/node/index.js +37 -57
- package/dist/js/node/libs/context/context.js +83 -94
- package/dist/js/node/libs/context/index.js +28 -13
- package/dist/js/node/libs/hook-api/index.js +76 -48
- package/dist/js/node/libs/hook-api/route.js +26 -11
- package/dist/js/node/libs/hook-api/template.js +41 -39
- package/dist/js/node/libs/loadConfig.js +73 -35
- package/dist/js/node/libs/metrics.js +25 -9
- package/dist/js/node/libs/proxy.js +89 -44
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -56
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -128
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -119
- package/dist/js/node/libs/render/cache/index.js +110 -64
- package/dist/js/node/libs/render/cache/page-caches/index.js +54 -14
- package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -12
- package/dist/js/node/libs/render/cache/spr.js +161 -129
- package/dist/js/node/libs/render/cache/type.js +15 -5
- package/dist/js/node/libs/render/cache/util.js +99 -45
- package/dist/js/node/libs/render/index.js +106 -67
- package/dist/js/node/libs/render/measure.js +58 -31
- package/dist/js/node/libs/render/reader.js +95 -70
- package/dist/js/node/libs/render/ssr.js +80 -47
- package/dist/js/node/libs/render/static.js +79 -40
- package/dist/js/node/libs/render/type.js +31 -12
- package/dist/js/node/libs/route/index.js +31 -26
- package/dist/js/node/libs/route/matcher.js +40 -41
- package/dist/js/node/libs/route/route.js +29 -22
- package/dist/js/node/libs/serve-file.js +66 -32
- package/dist/js/node/server/index.js +168 -160
- package/dist/js/node/server/modern-server-split.js +72 -22
- package/dist/js/node/server/modern-server.js +403 -445
- package/dist/js/node/type.js +15 -3
- package/dist/js/node/utils.js +85 -52
- package/dist/js/node/worker-server.js +57 -21
- package/dist/js/treeshaking/constants.js +26 -25
- package/dist/js/treeshaking/index.js +10 -10
- package/dist/js/treeshaking/libs/context/context.js +268 -237
- package/dist/js/treeshaking/libs/context/index.js +3 -3
- package/dist/js/treeshaking/libs/hook-api/index.js +267 -143
- package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
- package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
- package/dist/js/treeshaking/libs/loadConfig.js +80 -37
- package/dist/js/treeshaking/libs/metrics.js +4 -10
- package/dist/js/treeshaking/libs/proxy.js +240 -76
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
- package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
- package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
- package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
- package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
- package/dist/js/treeshaking/libs/render/index.js +228 -95
- package/dist/js/treeshaking/libs/render/measure.js +142 -57
- package/dist/js/treeshaking/libs/render/reader.js +325 -177
- package/dist/js/treeshaking/libs/render/ssr.js +220 -95
- package/dist/js/treeshaking/libs/render/static.js +210 -78
- package/dist/js/treeshaking/libs/render/type.js +7 -6
- package/dist/js/treeshaking/libs/route/index.js +125 -89
- package/dist/js/treeshaking/libs/route/matcher.js +132 -107
- package/dist/js/treeshaking/libs/route/route.js +40 -26
- package/dist/js/treeshaking/libs/serve-file.js +177 -68
- package/dist/js/treeshaking/server/index.js +493 -327
- package/dist/js/treeshaking/server/modern-server-split.js +352 -144
- package/dist/js/treeshaking/server/modern-server.js +1048 -909
- package/dist/js/treeshaking/type.js +1 -1
- package/dist/js/treeshaking/utils.js +138 -81
- package/dist/js/treeshaking/worker-server.js +176 -55
- package/dist/types/index.d.ts +2 -0
- package/dist/types/libs/context/context.d.ts +4 -1
- package/dist/types/libs/loadConfig.d.ts +1 -0
- package/dist/types/libs/render/cache/index.d.ts +2 -0
- package/dist/types/libs/render/cache/spr.d.ts +2 -0
- package/dist/types/libs/route/route.d.ts +0 -1
- package/dist/types/server/index.d.ts +3 -0
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/worker-server.d.ts +1 -2
- package/package.json +7 -14
- package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
- package/dist/js/modern/libs/render/modern/index.js +0 -37
- package/dist/js/node/libs/render/modern/browser-list.js +0 -14
- package/dist/js/node/libs/render/modern/index.js +0 -46
- package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
- package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
- package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
- package/dist/types/libs/render/modern/index.d.ts +0 -3
|
@@ -1,53 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
+
mod
|
|
39
|
+
));
|
|
40
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var loadConfig_exports = {};
|
|
42
|
+
__export(loadConfig_exports, {
|
|
43
|
+
getServerConfigPath: () => getServerConfigPath,
|
|
44
|
+
loadConfig: () => loadConfig,
|
|
45
|
+
requireConfig: () => requireConfig
|
|
5
46
|
});
|
|
6
|
-
|
|
7
|
-
var path =
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
16
|
-
const getServerConfigPath = (distDirectory, serverConfigFile = _utils.DEFAULT_SERVER_CONFIG) => {
|
|
47
|
+
module.exports = __toCommonJS(loadConfig_exports);
|
|
48
|
+
var path = __toESM(require("path"));
|
|
49
|
+
var import_utils = require("@modern-js/utils");
|
|
50
|
+
var import_merge_deep = __toESM(require("merge-deep"));
|
|
51
|
+
const getServerConfigPath = (distDirectory, serverConfigFile = import_utils.DEFAULT_SERVER_CONFIG) => {
|
|
17
52
|
const serverConfigPath = path.join(distDirectory, serverConfigFile);
|
|
18
53
|
return `${serverConfigPath}.js`;
|
|
19
54
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return (0, _utils.compatRequire)(serverConfigPath);
|
|
55
|
+
const requireConfig = (serverConfigPath) => {
|
|
56
|
+
if (import_utils.fs.pathExistsSync(serverConfigPath)) {
|
|
57
|
+
return (0, import_utils.compatRequire)(serverConfigPath);
|
|
24
58
|
}
|
|
25
59
|
return {};
|
|
26
60
|
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* 对配置进行合并,开发环境下,cliConfig 与 serverConfig 进行深合并
|
|
30
|
-
* 生产环境下,resolvedConfig 与 serverConfig 进行深合并
|
|
31
|
-
* resolvedConfigPath: 构建序列化后的 modern.config.js 文件路径
|
|
32
|
-
*/
|
|
33
|
-
exports.requireConfig = requireConfig;
|
|
34
61
|
const loadConfig = ({
|
|
35
62
|
cliConfig,
|
|
36
63
|
serverConfig,
|
|
37
64
|
resolvedConfigPath
|
|
38
65
|
}) => {
|
|
39
66
|
let config = null;
|
|
40
|
-
if (process.env.NODE_ENV ===
|
|
67
|
+
if (process.env.NODE_ENV === "production") {
|
|
41
68
|
const resolvedConfig = requireConfig(resolvedConfigPath);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
69
|
+
config = (0, import_merge_deep.default)(
|
|
70
|
+
__spreadProps(__spreadValues({}, resolvedConfig), {
|
|
71
|
+
plugins: []
|
|
72
|
+
}),
|
|
73
|
+
serverConfig,
|
|
74
|
+
cliConfig
|
|
75
|
+
);
|
|
46
76
|
} else {
|
|
47
|
-
config = (0,
|
|
48
|
-
|
|
49
|
-
|
|
77
|
+
config = (0, import_merge_deep.default)(
|
|
78
|
+
__spreadProps(__spreadValues({}, cliConfig), {
|
|
79
|
+
plugins: []
|
|
80
|
+
}),
|
|
81
|
+
serverConfig
|
|
82
|
+
);
|
|
50
83
|
}
|
|
51
84
|
return config;
|
|
52
85
|
};
|
|
53
|
-
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
getServerConfigPath,
|
|
89
|
+
loadConfig,
|
|
90
|
+
requireConfig
|
|
91
|
+
});
|
|
@@ -1,18 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var metrics_exports = {};
|
|
19
|
+
__export(metrics_exports, {
|
|
20
|
+
metrics: () => metrics
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
22
|
+
module.exports = __toCommonJS(metrics_exports);
|
|
7
23
|
const metrics = {
|
|
8
24
|
gauges() {
|
|
9
|
-
// no impl
|
|
10
25
|
},
|
|
11
26
|
emitCounter() {
|
|
12
|
-
// no impl
|
|
13
27
|
},
|
|
14
28
|
emitTimer() {
|
|
15
|
-
// no impl
|
|
16
29
|
}
|
|
17
30
|
};
|
|
18
|
-
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
metrics
|
|
34
|
+
});
|
|
@@ -1,69 +1,114 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
+
};
|
|
23
|
+
var __copyProps = (to, from, except, desc) => {
|
|
24
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
25
|
+
for (let key of __getOwnPropNames(from))
|
|
26
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
27
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
28
|
+
}
|
|
29
|
+
return to;
|
|
30
|
+
};
|
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
|
+
var __async = (__this, __arguments, generator) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
var fulfilled = (value) => {
|
|
35
|
+
try {
|
|
36
|
+
step(generator.next(value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var rejected = (value) => {
|
|
42
|
+
try {
|
|
43
|
+
step(generator.throw(value));
|
|
44
|
+
} catch (e) {
|
|
45
|
+
reject(e);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
var proxy_exports = {};
|
|
53
|
+
__export(proxy_exports, {
|
|
54
|
+
createProxyHandler: () => createProxyHandler,
|
|
55
|
+
formatProxyOptions: () => formatProxyOptions
|
|
5
56
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var _utils = require("../utils");
|
|
10
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
57
|
+
module.exports = __toCommonJS(proxy_exports);
|
|
58
|
+
var import_http_proxy_middleware = require("http-proxy-middleware");
|
|
59
|
+
var import_utils = require("../utils");
|
|
13
60
|
function formatProxyOptions(proxyOptions) {
|
|
14
61
|
const formattedProxy = [];
|
|
15
62
|
if (!Array.isArray(proxyOptions)) {
|
|
16
|
-
if (
|
|
63
|
+
if ("target" in proxyOptions) {
|
|
17
64
|
formattedProxy.push(proxyOptions);
|
|
18
65
|
} else {
|
|
19
|
-
Array.prototype.push.apply(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
66
|
+
Array.prototype.push.apply(
|
|
67
|
+
formattedProxy,
|
|
68
|
+
Object.keys(proxyOptions).reduce(
|
|
69
|
+
(total, source) => {
|
|
70
|
+
const option = proxyOptions[source];
|
|
71
|
+
total.push(__spreadValues({
|
|
72
|
+
context: source,
|
|
73
|
+
changeOrigin: true,
|
|
74
|
+
logLevel: "warn"
|
|
75
|
+
}, typeof option === "string" ? { target: option } : option));
|
|
76
|
+
return total;
|
|
77
|
+
},
|
|
78
|
+
[]
|
|
79
|
+
)
|
|
80
|
+
);
|
|
30
81
|
}
|
|
31
82
|
} else {
|
|
32
83
|
formattedProxy.push(...proxyOptions);
|
|
33
84
|
}
|
|
34
85
|
return formattedProxy;
|
|
35
86
|
}
|
|
36
|
-
const createProxyHandler = proxyOptions => {
|
|
37
|
-
(0,
|
|
87
|
+
const createProxyHandler = (proxyOptions) => {
|
|
88
|
+
(0, import_utils.debug)("createProxyHandler", proxyOptions);
|
|
38
89
|
if (!proxyOptions) {
|
|
39
90
|
return null;
|
|
40
91
|
}
|
|
41
|
-
|
|
42
|
-
// If it is not an array, it may be an object that uses the context attribute
|
|
43
|
-
// or an object in the form of { source: ProxyDetail }
|
|
44
92
|
const formattedProxy = formatProxyOptions(proxyOptions);
|
|
45
|
-
const middlewares = formattedProxy.map(option => {
|
|
46
|
-
const middleware = (0,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
req,
|
|
52
|
-
res
|
|
53
|
-
} = ctx;
|
|
54
|
-
const bypassUrl = typeof option.bypass === 'function' ? option.bypass(req, res, option) : null;
|
|
55
|
-
|
|
56
|
-
// only false, no true
|
|
57
|
-
if (typeof bypassUrl === 'boolean') {
|
|
93
|
+
const middlewares = formattedProxy.map((option) => {
|
|
94
|
+
const middleware = (0, import_http_proxy_middleware.createProxyMiddleware)(option.context, option);
|
|
95
|
+
return (ctx, next) => __async(void 0, null, function* () {
|
|
96
|
+
const { req, res } = ctx;
|
|
97
|
+
const bypassUrl = typeof option.bypass === "function" ? option.bypass(req, res, option) : null;
|
|
98
|
+
if (typeof bypassUrl === "boolean") {
|
|
58
99
|
ctx.status = 404;
|
|
59
100
|
return next();
|
|
60
|
-
} else if (typeof bypassUrl ===
|
|
101
|
+
} else if (typeof bypassUrl === "string") {
|
|
61
102
|
ctx.url = bypassUrl;
|
|
62
103
|
return next();
|
|
63
104
|
}
|
|
64
105
|
middleware(req, res, next);
|
|
65
|
-
};
|
|
106
|
+
});
|
|
66
107
|
});
|
|
67
108
|
return middlewares;
|
|
68
109
|
};
|
|
69
|
-
|
|
110
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
111
|
+
0 && (module.exports = {
|
|
112
|
+
createProxyHandler,
|
|
113
|
+
formatProxyOptions
|
|
114
|
+
});
|
|
@@ -1,72 +1,115 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from))
|
|
10
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
11
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
|
+
}
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
17
|
+
mod
|
|
18
|
+
));
|
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
var fulfilled = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
step(generator.next(value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var rejected = (value) => {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.throw(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var import_url = __toESM(require("url"));
|
|
40
|
+
var import_spr = require("../spr");
|
|
41
|
+
var import_util = require("../util");
|
|
42
|
+
describe("test spr util functions", () => {
|
|
43
|
+
it("should return value correctly", () => {
|
|
44
|
+
expect((0, import_util.connectFactor)("bar", "foo")).toBe("bar-foo");
|
|
45
|
+
expect((0, import_util.fname)(1)).toBe("f1");
|
|
46
|
+
expect((0, import_util.namespaceHash)("modern", "!@#$%^&")).toBe("modern/!@#$%^&");
|
|
12
47
|
});
|
|
13
|
-
it(
|
|
14
|
-
const ins1 = (0,
|
|
15
|
-
const ins2 = (0,
|
|
48
|
+
it("should create or destroy instance correctly", () => {
|
|
49
|
+
const ins1 = (0, import_spr.createCache)();
|
|
50
|
+
const ins2 = (0, import_spr.createCache)();
|
|
16
51
|
expect(ins1 === ins2).toBe(true);
|
|
17
|
-
(0,
|
|
18
|
-
const ins3 = (0,
|
|
52
|
+
(0, import_spr.destroyCache)();
|
|
53
|
+
const ins3 = (0, import_spr.createCache)();
|
|
19
54
|
expect(ins1 === ins3).toBe(false);
|
|
20
55
|
expect(ins2 === ins3).toBe(false);
|
|
21
56
|
});
|
|
22
|
-
it(
|
|
23
|
-
const urlParams = (() => new
|
|
24
|
-
urlParams.set(
|
|
25
|
-
const getParam = (0,
|
|
26
|
-
expect(getParam(
|
|
27
|
-
const headers = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const getHeader = (0, _util.valueFactory)(headers);
|
|
31
|
-
expect(getHeader('age')).toBe('12345');
|
|
57
|
+
it("should return function correctly", () => {
|
|
58
|
+
const urlParams = (() => new import_url.default.URLSearchParams())();
|
|
59
|
+
urlParams.set("name", "modern");
|
|
60
|
+
const getParam = (0, import_util.valueFactory)(urlParams);
|
|
61
|
+
expect(getParam("name")).toBe("modern");
|
|
62
|
+
const headers = { age: "12345" };
|
|
63
|
+
const getHeader = (0, import_util.valueFactory)(headers);
|
|
64
|
+
expect(getHeader("age")).toBe("12345");
|
|
32
65
|
});
|
|
33
|
-
it(
|
|
34
|
-
const contentNoHead =
|
|
35
|
-
const html = (0,
|
|
66
|
+
it("should add target html content", () => {
|
|
67
|
+
const contentNoHead = "<div>123</div>";
|
|
68
|
+
const html = (0, import_util.cacheAddition)(contentNoHead, Math.random().toString());
|
|
36
69
|
expect(html).toBe(contentNoHead);
|
|
37
|
-
const contentWithHead =
|
|
70
|
+
const contentWithHead = "<head></head><div>123</div>";
|
|
38
71
|
const hash = Math.random().toString();
|
|
39
|
-
const htmlWithHead = (0,
|
|
40
|
-
expect(htmlWithHead).toBe(
|
|
72
|
+
const htmlWithHead = (0, import_util.cacheAddition)(contentWithHead, hash);
|
|
73
|
+
expect(htmlWithHead).toBe(
|
|
74
|
+
`<head><meta name="x-moden-spr" content="${hash}"></head><div>123</div>`
|
|
75
|
+
);
|
|
41
76
|
});
|
|
42
|
-
it(
|
|
77
|
+
it("should only invoke func one time", () => __async(exports, null, function* () {
|
|
43
78
|
let index = 0;
|
|
44
|
-
const fn = (0,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
79
|
+
const fn = (0, import_util.withCoalescedInvoke)(
|
|
80
|
+
() => __async(exports, null, function* () {
|
|
81
|
+
return new Promise((resolve) => {
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
index += 1;
|
|
84
|
+
resolve(index);
|
|
85
|
+
}, 500);
|
|
86
|
+
});
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
const key = "test";
|
|
90
|
+
const [res1, res2] = yield Promise.all([fn(key, []), fn(key, [])]);
|
|
52
91
|
expect(res1.isOrigin && res2.isOrigin).toBe(false);
|
|
53
92
|
expect(res1.isOrigin || res2.isOrigin).toBe(true);
|
|
54
93
|
expect(res1.value).toBe(1);
|
|
55
94
|
expect(res2.value).toBe(1);
|
|
56
|
-
});
|
|
57
|
-
it(
|
|
58
|
-
const foo =
|
|
59
|
-
const async =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
95
|
+
}));
|
|
96
|
+
it("should invoke sync or async", () => __async(exports, null, function* () {
|
|
97
|
+
const foo = "";
|
|
98
|
+
const async = yield (0, import_util.maybeSync)(
|
|
99
|
+
() => new Promise((resolve) => {
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
resolve(foo);
|
|
102
|
+
}, 100);
|
|
103
|
+
})
|
|
104
|
+
)(false);
|
|
64
105
|
expect(async).toBeUndefined();
|
|
65
|
-
const sync =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
106
|
+
const sync = yield (0, import_util.maybeSync)(
|
|
107
|
+
() => new Promise((resolve) => {
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
resolve(foo);
|
|
110
|
+
}, 100);
|
|
111
|
+
})
|
|
112
|
+
)(true);
|
|
70
113
|
expect(sync).toBe(foo);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
114
|
+
}));
|
|
115
|
+
});
|