@modern-js/prod-server 1.22.1 → 2.0.0-alpha.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 +271 -17
- package/dist/js/modern/constants.js +32 -27
- package/dist/js/modern/index.js +11 -7
- package/dist/js/modern/libs/context/context.js +54 -132
- package/dist/js/modern/libs/context/index.js +5 -2
- package/dist/js/modern/libs/hook-api/index.js +134 -0
- package/dist/js/modern/libs/hook-api/route.js +13 -37
- package/dist/js/modern/libs/hook-api/template.js +41 -32
- package/dist/js/modern/libs/loadConfig.js +46 -32
- package/dist/js/modern/libs/metrics.js +6 -7
- package/dist/js/modern/libs/proxy.js +70 -44
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -68
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -225
- 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 +93 -50
- 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 -16
- package/dist/js/modern/libs/render/cache/spr.js +133 -167
- package/dist/js/modern/libs/render/cache/type.js +0 -1
- package/dist/js/modern/libs/render/cache/util.js +71 -45
- package/dist/js/modern/libs/render/index.js +76 -61
- package/dist/js/modern/libs/render/measure.js +42 -34
- package/dist/js/modern/libs/render/reader.js +68 -76
- package/dist/js/modern/libs/render/ssr.js +63 -33
- package/dist/js/modern/libs/render/static.js +51 -37
- package/dist/js/modern/libs/render/type.js +9 -7
- package/dist/js/modern/libs/route/index.js +12 -30
- package/dist/js/modern/libs/route/matcher.js +28 -50
- package/dist/js/modern/libs/route/route.js +9 -31
- package/dist/js/modern/libs/serve-file.js +40 -20
- package/dist/js/modern/server/index.js +152 -168
- package/dist/js/modern/server/modern-server-split.js +44 -60
- package/dist/js/modern/server/modern-server.js +416 -526
- package/dist/js/modern/type.js +0 -1
- package/dist/js/modern/utils.js +62 -58
- package/dist/js/modern/worker-server.js +54 -0
- package/dist/js/node/constants.js +53 -32
- package/dist/js/node/index.js +37 -67
- package/dist/js/node/libs/context/context.js +84 -150
- package/dist/js/node/libs/context/index.js +28 -16
- package/dist/js/node/libs/hook-api/index.js +164 -0
- package/dist/js/node/libs/hook-api/route.js +35 -45
- package/dist/js/node/libs/hook-api/template.js +64 -40
- package/dist/js/node/libs/loadConfig.js +74 -55
- package/dist/js/node/libs/metrics.js +28 -12
- package/dist/js/node/libs/proxy.js +90 -55
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -61
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -140
- 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 +115 -65
- package/dist/js/node/libs/render/cache/page-caches/index.js +54 -16
- package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -26
- package/dist/js/node/libs/render/cache/spr.js +161 -188
- package/dist/js/node/libs/render/cache/type.js +15 -5
- package/dist/js/node/libs/render/cache/util.js +99 -63
- package/dist/js/node/libs/render/index.js +106 -87
- package/dist/js/node/libs/render/measure.js +61 -44
- package/dist/js/node/libs/render/reader.js +98 -100
- package/dist/js/node/libs/render/ssr.js +92 -58
- package/dist/js/node/libs/render/static.js +80 -53
- package/dist/js/node/libs/render/type.js +31 -13
- package/dist/js/node/libs/route/index.js +35 -44
- package/dist/js/node/libs/route/matcher.js +48 -65
- package/dist/js/node/libs/route/route.js +29 -37
- package/dist/js/node/libs/serve-file.js +74 -37
- package/dist/js/node/server/index.js +170 -203
- package/dist/js/node/server/modern-server-split.js +70 -73
- package/dist/js/node/server/modern-server.js +432 -577
- package/dist/js/node/type.js +15 -3
- package/dist/js/node/utils.js +87 -93
- package/dist/js/node/worker-server.js +77 -0
- package/dist/js/treeshaking/constants.js +29 -0
- package/dist/js/treeshaking/index.js +13 -0
- package/dist/js/treeshaking/libs/context/context.js +274 -0
- package/dist/js/treeshaking/libs/context/index.js +5 -0
- package/dist/js/treeshaking/libs/hook-api/index.js +281 -0
- package/dist/js/treeshaking/libs/hook-api/route.js +68 -0
- package/dist/js/treeshaking/libs/hook-api/template.js +127 -0
- package/dist/js/treeshaking/libs/loadConfig.js +82 -0
- package/dist/js/treeshaking/libs/metrics.js +6 -0
- package/dist/js/treeshaking/libs/proxy.js +244 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +291 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +781 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +67 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -0
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +147 -0
- package/dist/js/treeshaking/libs/render/cache/index.js +346 -0
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +154 -0
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +84 -0
- package/dist/js/treeshaking/libs/render/cache/spr.js +492 -0
- package/dist/js/treeshaking/libs/render/cache/type.js +1 -0
- package/dist/js/treeshaking/libs/render/cache/util.js +280 -0
- package/dist/js/treeshaking/libs/render/index.js +233 -0
- package/dist/js/treeshaking/libs/render/measure.js +146 -0
- package/dist/js/treeshaking/libs/render/reader.js +339 -0
- package/dist/js/treeshaking/libs/render/ssr.js +223 -0
- package/dist/js/treeshaking/libs/render/static.js +216 -0
- package/dist/js/treeshaking/libs/render/type.js +7 -0
- package/dist/js/treeshaking/libs/route/index.js +130 -0
- package/dist/js/treeshaking/libs/route/matcher.js +138 -0
- package/dist/js/treeshaking/libs/route/route.js +40 -0
- package/dist/js/treeshaking/libs/serve-file.js +184 -0
- package/dist/js/treeshaking/server/index.js +505 -0
- package/dist/js/treeshaking/server/modern-server-split.js +360 -0
- package/dist/js/treeshaking/server/modern-server.js +1083 -0
- package/dist/js/treeshaking/type.js +1 -0
- package/dist/js/treeshaking/utils.js +147 -0
- package/dist/js/treeshaking/worker-server.js +177 -0
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/hook-api/index.d.ts +5 -0
- package/dist/types/libs/hook-api/route.d.ts +9 -14
- package/dist/types/libs/hook-api/template.d.ts +19 -9
- package/dist/types/libs/render/cache/index.d.ts +4 -2
- package/dist/types/libs/render/type.d.ts +3 -1
- package/dist/types/libs/route/route.d.ts +0 -1
- package/dist/types/libs/serve-file.d.ts +2 -1
- package/dist/types/server/index.d.ts +2 -0
- package/dist/types/server/modern-server.d.ts +11 -11
- package/dist/types/type.d.ts +8 -10
- package/dist/types/utils.d.ts +3 -4
- package/dist/types/worker-server.d.ts +15 -0
- package/package.json +31 -45
- package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
- package/dist/js/modern/libs/render/modern/index.js +0 -48
- package/dist/js/node/libs/render/modern/browser-list.js +0 -14
- package/dist/js/node/libs/render/modern/index.js +0 -64
- package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
- package/dist/types/libs/render/modern/index.d.ts +0 -3
|
@@ -1,87 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 });
|
|
11
14
|
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var route_exports = {};
|
|
19
|
+
__export(route_exports, {
|
|
20
|
+
RouteMatchManager: () => RouteMatchManager,
|
|
21
|
+
RouteMatcher: () => import_matcher.RouteMatcher
|
|
12
22
|
});
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
23
|
+
module.exports = __toCommonJS(route_exports);
|
|
24
|
+
var import_matcher = require("./matcher");
|
|
18
25
|
class RouteMatchManager {
|
|
19
26
|
constructor() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
_defineProperty(this, "specs", []);
|
|
23
|
-
|
|
27
|
+
this.specs = [];
|
|
24
28
|
this.matchers = [];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
}
|
|
28
30
|
filter(pathname) {
|
|
29
31
|
return this.matchers.reduce((matches, matcher) => {
|
|
30
32
|
if (matcher.matchUrlPath(pathname)) {
|
|
31
33
|
matches.push(matcher);
|
|
32
34
|
}
|
|
33
|
-
|
|
34
35
|
return matches;
|
|
35
36
|
}, []);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
}
|
|
39
38
|
best(pathname, matches) {
|
|
40
39
|
let best;
|
|
41
40
|
let matchedLen = 0;
|
|
42
|
-
|
|
43
41
|
for (const match of matches) {
|
|
44
42
|
const len = match.matchLength(pathname);
|
|
45
|
-
|
|
46
43
|
if (len === null) {
|
|
47
44
|
continue;
|
|
48
45
|
}
|
|
49
|
-
|
|
50
46
|
if (len > matchedLen) {
|
|
51
47
|
best = match;
|
|
52
48
|
matchedLen = len;
|
|
53
49
|
}
|
|
54
50
|
}
|
|
55
|
-
|
|
56
51
|
return best;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
}
|
|
60
53
|
reset(specs) {
|
|
61
54
|
this.specs = specs;
|
|
62
55
|
const matchers = specs.reduce((ms, spec) => {
|
|
63
|
-
ms.push(new
|
|
56
|
+
ms.push(new import_matcher.RouteMatcher(spec));
|
|
64
57
|
return ms;
|
|
65
58
|
}, []);
|
|
66
59
|
this.matchers = matchers;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
60
|
+
}
|
|
70
61
|
match(pathname) {
|
|
71
62
|
const matches = this.filter(pathname);
|
|
72
63
|
const best = this.best(pathname, matches);
|
|
73
64
|
return best;
|
|
74
65
|
}
|
|
75
|
-
|
|
76
66
|
matchEntry(entryname) {
|
|
77
|
-
return this.matchers.find(matcher => matcher.matchEntry(entryname));
|
|
67
|
+
return this.matchers.find((matcher) => matcher.matchEntry(entryname));
|
|
78
68
|
}
|
|
79
|
-
|
|
80
69
|
getBundles() {
|
|
81
|
-
const bundles = this.specs.filter(route => route.isSSR).map(route => route.bundle);
|
|
70
|
+
const bundles = this.specs.filter((route) => route.isSSR).map((route) => route.bundle);
|
|
82
71
|
return bundles;
|
|
83
72
|
}
|
|
84
|
-
|
|
85
73
|
}
|
|
86
|
-
|
|
87
|
-
exports
|
|
74
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
75
|
+
0 && (module.exports = {
|
|
76
|
+
RouteMatchManager,
|
|
77
|
+
RouteMatcher
|
|
78
|
+
});
|
|
@@ -1,50 +1,48 @@
|
|
|
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 matcher_exports = {};
|
|
19
|
+
__export(matcher_exports, {
|
|
20
|
+
RouteMatcher: () => RouteMatcher
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _route = require("./route");
|
|
15
|
-
|
|
16
|
-
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; }
|
|
17
|
-
|
|
18
|
-
// eslint-disable-next-line no-useless-escape
|
|
22
|
+
module.exports = __toCommonJS(matcher_exports);
|
|
23
|
+
var import_path_to_regexp = require("path-to-regexp");
|
|
24
|
+
var import_route = require("./route");
|
|
25
|
+
const removeTailSlash = (s) => s.replace(/\/+$/, "");
|
|
26
|
+
const toPath = (reg, params) => {
|
|
27
|
+
const fn = (0, import_path_to_regexp.compile)(reg, { encode: encodeURIComponent });
|
|
28
|
+
return fn(params);
|
|
29
|
+
};
|
|
19
30
|
const regCharsDetector = /[^a-zA-Z\-_0-9\/\.]/;
|
|
20
|
-
|
|
21
31
|
class RouteMatcher {
|
|
22
32
|
constructor(spec) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
_defineProperty(this, "urlPath", '');
|
|
26
|
-
|
|
27
|
-
_defineProperty(this, "urlMatcher", void 0);
|
|
28
|
-
|
|
29
|
-
_defineProperty(this, "urlReg", void 0);
|
|
30
|
-
|
|
33
|
+
this.urlPath = "";
|
|
31
34
|
this.spec = spec;
|
|
32
35
|
this.setupUrlPath();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
}
|
|
36
37
|
generate(url) {
|
|
37
|
-
const route = new
|
|
38
|
-
|
|
38
|
+
const route = new import_route.ModernRoute(this.spec);
|
|
39
39
|
if (this.urlPath) {
|
|
40
40
|
const params = this.parseURLParams(url);
|
|
41
|
-
route.urlPath =
|
|
41
|
+
route.urlPath = toPath(route.urlPath, params);
|
|
42
42
|
route.params = params;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
44
|
return route;
|
|
46
45
|
}
|
|
47
|
-
|
|
48
46
|
parseURLParams(pathname) {
|
|
49
47
|
if (!this.urlMatcher) {
|
|
50
48
|
return {};
|
|
@@ -52,67 +50,52 @@ class RouteMatcher {
|
|
|
52
50
|
const matchResult = this.urlMatcher(pathname);
|
|
53
51
|
return matchResult.params;
|
|
54
52
|
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
}
|
|
58
54
|
matchLength(pathname) {
|
|
55
|
+
var _a;
|
|
59
56
|
if (!this.urlReg) {
|
|
60
57
|
return this.urlPath.length;
|
|
61
58
|
} else {
|
|
62
|
-
var _result$;
|
|
63
|
-
|
|
64
59
|
const result = this.urlReg.exec(pathname);
|
|
65
|
-
return (
|
|
60
|
+
return ((_a = result == null ? void 0 : result[0]) == null ? void 0 : _a.length) || null;
|
|
66
61
|
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
}
|
|
70
63
|
matchUrlPath(requestUrl) {
|
|
71
|
-
let urlWithoutSlash = requestUrl.endsWith(
|
|
72
|
-
|
|
73
|
-
if (urlWithoutSlash.endsWith('.html')) {
|
|
64
|
+
let urlWithoutSlash = requestUrl.endsWith("/") && requestUrl !== "/" ? requestUrl.slice(0, -1) : requestUrl;
|
|
65
|
+
if (urlWithoutSlash.endsWith(".html")) {
|
|
74
66
|
urlWithoutSlash = urlWithoutSlash.slice(0, -5);
|
|
75
67
|
}
|
|
76
|
-
|
|
77
68
|
if (this.urlMatcher) {
|
|
78
69
|
return Boolean(this.urlMatcher(urlWithoutSlash));
|
|
79
70
|
} else {
|
|
80
71
|
if (urlWithoutSlash.startsWith(this.urlPath)) {
|
|
81
|
-
|
|
82
|
-
if (this.urlPath !== '/' && urlWithoutSlash.length > this.urlPath.length && !urlWithoutSlash.startsWith(`${this.urlPath}/`)) {
|
|
72
|
+
if (this.urlPath !== "/" && urlWithoutSlash.length > this.urlPath.length && !urlWithoutSlash.startsWith(`${this.urlPath}/`)) {
|
|
83
73
|
return false;
|
|
84
74
|
}
|
|
85
|
-
|
|
86
75
|
return true;
|
|
87
76
|
}
|
|
88
|
-
|
|
89
77
|
return false;
|
|
90
78
|
}
|
|
91
79
|
}
|
|
92
|
-
|
|
93
80
|
matchEntry(entryName) {
|
|
94
81
|
return this.spec.entryName === entryName;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
}
|
|
98
83
|
setupUrlPath() {
|
|
99
|
-
const {
|
|
100
|
-
|
|
101
|
-
} = this.spec;
|
|
102
|
-
this.urlPath = urlPath === '/' ? urlPath : (0, _utils.removeTailSlash)(urlPath);
|
|
84
|
+
const { urlPath } = this.spec;
|
|
85
|
+
this.urlPath = urlPath === "/" ? urlPath : removeTailSlash(urlPath);
|
|
103
86
|
const useReg = regCharsDetector.test(urlPath);
|
|
104
|
-
|
|
105
87
|
if (useReg) {
|
|
106
|
-
this.urlMatcher = (0,
|
|
88
|
+
this.urlMatcher = (0, import_path_to_regexp.match)(urlPath, {
|
|
107
89
|
end: false,
|
|
108
90
|
decode: decodeURIComponent
|
|
109
91
|
});
|
|
110
|
-
this.urlReg = (0,
|
|
92
|
+
this.urlReg = (0, import_path_to_regexp.pathToRegexp)(urlPath, [], {
|
|
111
93
|
end: false
|
|
112
94
|
});
|
|
113
95
|
}
|
|
114
96
|
}
|
|
115
|
-
|
|
116
97
|
}
|
|
117
|
-
|
|
118
|
-
exports
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
RouteMatcher
|
|
101
|
+
});
|
|
@@ -1,47 +1,39 @@
|
|
|
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 route_exports = {};
|
|
19
|
+
__export(route_exports, {
|
|
20
|
+
ModernRoute: () => ModernRoute
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
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; }
|
|
9
|
-
|
|
22
|
+
module.exports = __toCommonJS(route_exports);
|
|
10
23
|
class ModernRoute {
|
|
11
24
|
constructor(routeSpec) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
_defineProperty(this, "entryName", void 0);
|
|
15
|
-
|
|
16
|
-
_defineProperty(this, "urlPath", void 0);
|
|
17
|
-
|
|
18
|
-
_defineProperty(this, "entryPath", void 0);
|
|
19
|
-
|
|
20
|
-
_defineProperty(this, "bundle", void 0);
|
|
21
|
-
|
|
22
|
-
_defineProperty(this, "isApi", void 0);
|
|
23
|
-
|
|
24
|
-
_defineProperty(this, "isSSR", void 0);
|
|
25
|
-
|
|
26
|
-
_defineProperty(this, "isSPA", void 0);
|
|
27
|
-
|
|
28
|
-
_defineProperty(this, "enableModernMode", void 0);
|
|
29
|
-
|
|
30
|
-
_defineProperty(this, "params", {});
|
|
31
|
-
|
|
32
|
-
_defineProperty(this, "responseHeaders", void 0);
|
|
33
|
-
|
|
34
|
-
this.entryName = routeSpec.entryName || '';
|
|
25
|
+
this.params = {};
|
|
26
|
+
this.entryName = routeSpec.entryName || "";
|
|
35
27
|
this.urlPath = routeSpec.urlPath;
|
|
36
|
-
this.entryPath = routeSpec.entryPath ||
|
|
28
|
+
this.entryPath = routeSpec.entryPath || "";
|
|
37
29
|
this.isSSR = routeSpec.isSSR || false;
|
|
38
30
|
this.isSPA = routeSpec.isSPA || false;
|
|
39
31
|
this.isApi = routeSpec.isApi || false;
|
|
40
|
-
this.bundle = routeSpec.bundle ||
|
|
41
|
-
this.enableModernMode = (_routeSpec$enableMode = routeSpec.enableModernMode) !== null && _routeSpec$enableMode !== void 0 ? _routeSpec$enableMode : false;
|
|
32
|
+
this.bundle = routeSpec.bundle || "";
|
|
42
33
|
this.responseHeaders = routeSpec.responseHeaders;
|
|
43
34
|
}
|
|
44
|
-
|
|
45
35
|
}
|
|
46
|
-
|
|
47
|
-
exports
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
ModernRoute
|
|
39
|
+
});
|
|
@@ -1,60 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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 __export = (target, all) => {
|
|
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
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var __async = (__this, __arguments, generator) => {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
var fulfilled = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.next(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var rejected = (value) => {
|
|
34
|
+
try {
|
|
35
|
+
step(generator.throw(value));
|
|
36
|
+
} catch (e) {
|
|
37
|
+
reject(e);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
41
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var serve_file_exports = {};
|
|
45
|
+
__export(serve_file_exports, {
|
|
46
|
+
createStaticFileHandler: () => createStaticFileHandler,
|
|
47
|
+
faviconFallbackHandler: () => faviconFallbackHandler
|
|
5
48
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _utils = require("@modern-js/utils");
|
|
11
|
-
|
|
12
|
-
var _utils2 = require("../utils");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
// Todo 看看是不是能 fork 一份,即使命中也返回
|
|
49
|
+
module.exports = __toCommonJS(serve_file_exports);
|
|
50
|
+
var import_serve_static = __toESM(require("serve-static"));
|
|
51
|
+
var import_utils = require("@modern-js/utils");
|
|
52
|
+
var import_utils2 = require("../utils");
|
|
17
53
|
const removedPrefix = (req, prefix) => {
|
|
18
|
-
if ((0,
|
|
54
|
+
if ((0, import_utils2.useLocalPrefix)(prefix)) {
|
|
19
55
|
req.url = req.url.slice(prefix.length);
|
|
20
56
|
return () => {
|
|
21
57
|
req.url = prefix + req.url;
|
|
22
58
|
};
|
|
23
59
|
} else {
|
|
24
|
-
return () => {
|
|
60
|
+
return () => {
|
|
25
61
|
};
|
|
26
62
|
}
|
|
27
63
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
} = output;
|
|
39
|
-
const hitRule = rules.find(item => {
|
|
40
|
-
if ((0,
|
|
64
|
+
const faviconFallbackHandler = (context, next) => {
|
|
65
|
+
if (context.url === "/favicon.ico") {
|
|
66
|
+
context.res.statusCode = 204;
|
|
67
|
+
context.res.end();
|
|
68
|
+
} else {
|
|
69
|
+
next();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const createStaticFileHandler = (rules, output = {}) => (context, next) => __async(void 0, null, function* () {
|
|
73
|
+
const { url: requestUrl, req, res } = context;
|
|
74
|
+
const { assetPrefix = "/" } = output;
|
|
75
|
+
const hitRule = rules.find((item) => {
|
|
76
|
+
if ((0, import_utils.isString)(item.path) && requestUrl.startsWith(item.path)) {
|
|
41
77
|
return true;
|
|
42
|
-
} else if ((0,
|
|
78
|
+
} else if ((0, import_utils.isRegExp)(item.path) && item.path.test(requestUrl)) {
|
|
43
79
|
return true;
|
|
44
80
|
}
|
|
45
|
-
|
|
46
81
|
return false;
|
|
47
82
|
});
|
|
48
|
-
|
|
49
83
|
if (hitRule) {
|
|
50
84
|
const resume = removedPrefix(req, assetPrefix);
|
|
51
|
-
(0,
|
|
85
|
+
(0, import_serve_static.default)(hitRule.target)(req, res, () => {
|
|
52
86
|
resume();
|
|
53
87
|
next();
|
|
54
88
|
});
|
|
55
89
|
} else {
|
|
56
90
|
return next();
|
|
57
91
|
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
exports
|
|
92
|
+
});
|
|
93
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
94
|
+
0 && (module.exports = {
|
|
95
|
+
createStaticFileHandler,
|
|
96
|
+
faviconFallbackHandler
|
|
97
|
+
});
|