@modern-js/prod-server 2.0.0-beta.3 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/js/modern/constants.js +32 -25
  3. package/dist/js/modern/index.js +11 -6
  4. package/dist/js/modern/libs/context/context.js +52 -84
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +42 -35
  7. package/dist/js/modern/libs/hook-api/route.js +6 -7
  8. package/dist/js/modern/libs/hook-api/template.js +20 -34
  9. package/dist/js/modern/libs/loadConfig.js +45 -24
  10. package/dist/js/modern/libs/metrics.js +3 -4
  11. package/dist/js/modern/libs/proxy.js +68 -37
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +88 -54
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -117
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -39
  23. package/dist/js/modern/libs/render/index.js +76 -56
  24. package/dist/js/modern/libs/render/measure.js +38 -27
  25. package/dist/js/modern/libs/render/reader.js +65 -62
  26. package/dist/js/modern/libs/render/ssr.js +50 -32
  27. package/dist/js/modern/libs/render/static.js +50 -33
  28. package/dist/js/modern/libs/render/type.js +9 -6
  29. package/dist/js/modern/libs/route/index.js +8 -15
  30. package/dist/js/modern/libs/route/matcher.js +20 -34
  31. package/dist/js/modern/libs/route/route.js +9 -18
  32. package/dist/js/modern/libs/serve-file.js +33 -20
  33. package/dist/js/modern/server/index.js +144 -145
  34. package/dist/js/modern/server/modern-server-split.js +46 -12
  35. package/dist/js/modern/server/modern-server.js +377 -417
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -43
  38. package/dist/js/modern/worker-server.js +34 -14
  39. package/dist/js/node/constants.js +45 -30
  40. package/dist/js/node/index.js +31 -57
  41. package/dist/js/node/libs/context/context.js +79 -94
  42. package/dist/js/node/libs/context/index.js +23 -13
  43. package/dist/js/node/libs/hook-api/index.js +69 -48
  44. package/dist/js/node/libs/hook-api/route.js +22 -11
  45. package/dist/js/node/libs/hook-api/template.js +36 -39
  46. package/dist/js/node/libs/loadConfig.js +69 -35
  47. package/dist/js/node/libs/metrics.js +21 -9
  48. package/dist/js/node/libs/proxy.js +86 -44
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +132 -70
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +268 -218
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +61 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +54 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +101 -119
  54. package/dist/js/node/libs/render/cache/index.js +110 -64
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +50 -14
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +29 -12
  57. package/dist/js/node/libs/render/cache/spr.js +156 -129
  58. package/dist/js/node/libs/render/cache/type.js +0 -5
  59. package/dist/js/node/libs/render/cache/util.js +88 -45
  60. package/dist/js/node/libs/render/index.js +102 -67
  61. package/dist/js/node/libs/render/measure.js +55 -31
  62. package/dist/js/node/libs/render/reader.js +87 -70
  63. package/dist/js/node/libs/render/ssr.js +76 -47
  64. package/dist/js/node/libs/render/static.js +75 -40
  65. package/dist/js/node/libs/render/type.js +27 -12
  66. package/dist/js/node/libs/route/index.js +26 -26
  67. package/dist/js/node/libs/route/matcher.js +36 -41
  68. package/dist/js/node/libs/route/route.js +25 -22
  69. package/dist/js/node/libs/serve-file.js +61 -32
  70. package/dist/js/node/server/index.js +160 -160
  71. package/dist/js/node/server/modern-server-split.js +68 -22
  72. package/dist/js/node/server/modern-server.js +395 -441
  73. package/dist/js/node/type.js +0 -3
  74. package/dist/js/node/utils.js +74 -52
  75. package/dist/js/node/worker-server.js +53 -21
  76. package/dist/js/treeshaking/constants.js +26 -25
  77. package/dist/js/treeshaking/index.js +10 -10
  78. package/dist/js/treeshaking/libs/context/context.js +268 -237
  79. package/dist/js/treeshaking/libs/context/index.js +3 -3
  80. package/dist/js/treeshaking/libs/hook-api/index.js +265 -143
  81. package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
  82. package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
  83. package/dist/js/treeshaking/libs/loadConfig.js +80 -37
  84. package/dist/js/treeshaking/libs/metrics.js +4 -10
  85. package/dist/js/treeshaking/libs/proxy.js +240 -76
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
  91. package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
  96. package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
  97. package/dist/js/treeshaking/libs/render/index.js +228 -95
  98. package/dist/js/treeshaking/libs/render/measure.js +142 -57
  99. package/dist/js/treeshaking/libs/render/reader.js +325 -177
  100. package/dist/js/treeshaking/libs/render/ssr.js +220 -95
  101. package/dist/js/treeshaking/libs/render/static.js +210 -78
  102. package/dist/js/treeshaking/libs/render/type.js +7 -6
  103. package/dist/js/treeshaking/libs/route/index.js +125 -89
  104. package/dist/js/treeshaking/libs/route/matcher.js +132 -107
  105. package/dist/js/treeshaking/libs/route/route.js +40 -26
  106. package/dist/js/treeshaking/libs/serve-file.js +177 -68
  107. package/dist/js/treeshaking/server/index.js +468 -327
  108. package/dist/js/treeshaking/server/modern-server-split.js +352 -144
  109. package/dist/js/treeshaking/server/modern-server.js +1046 -909
  110. package/dist/js/treeshaking/type.js +1 -1
  111. package/dist/js/treeshaking/utils.js +138 -81
  112. package/dist/js/treeshaking/worker-server.js +176 -55
  113. package/dist/types/index.d.ts +2 -0
  114. package/dist/types/libs/context/context.d.ts +4 -1
  115. package/dist/types/libs/loadConfig.d.ts +1 -0
  116. package/dist/types/libs/render/cache/index.d.ts +2 -0
  117. package/dist/types/libs/render/cache/spr.d.ts +2 -0
  118. package/dist/types/libs/route/route.d.ts +0 -1
  119. package/dist/types/server/index.d.ts +3 -0
  120. package/dist/types/utils.d.ts +1 -1
  121. package/dist/types/worker-server.d.ts +1 -2
  122. package/package.json +7 -14
  123. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  124. package/dist/js/modern/libs/render/modern/index.js +0 -37
  125. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  126. package/dist/js/node/libs/render/modern/index.js +0 -46
  127. package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
  129. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  130. package/dist/types/libs/render/modern/index.d.ts +0 -3
@@ -1,50 +1,85 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ handleDirectory: () => handleDirectory
5
27
  });
6
- exports.handleDirectory = handleDirectory;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _reader = require("./reader");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- async function handleDirectory(ctx, entryPath, urlPath) {
12
- const {
13
- path: pathname
14
- } = ctx;
15
- const filepath = _path.default.join(entryPath, trimLeft(pathname, urlPath));
16
-
17
- // If can match accurately, always return the one that matches accurately
18
- let content = await (0, _reader.readFile)(filepath);
19
- let contentType = _utils.mime.contentType(_path.default.extname(filepath) || '');
20
-
21
- // automatic addressing
22
- if (!content) {
23
- if (pathname.endsWith('/')) {
24
- content = await (0, _reader.readFile)(`${filepath}index.html`);
25
- } else if (!pathname.includes('.')) {
26
- content = await (0, _reader.readFile)(`${filepath}.html`);
27
- if (!content) {
28
- content = await (0, _reader.readFile)(`${filepath}/index.html`);
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var import_path = __toESM(require("path"));
30
+ var import_utils = require("@modern-js/utils");
31
+ var import_reader = require("./reader");
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
+ function handleDirectory(ctx, entryPath, urlPath) {
53
+ return __async(this, null, function* () {
54
+ const { path: pathname } = ctx;
55
+ const filepath = import_path.default.join(entryPath, trimLeft(pathname, urlPath));
56
+ let content = yield (0, import_reader.readFile)(filepath);
57
+ let contentType = import_utils.mime.contentType(import_path.default.extname(filepath) || "");
58
+ if (!content) {
59
+ if (pathname.endsWith("/")) {
60
+ content = yield (0, import_reader.readFile)(`${filepath}index.html`);
61
+ } else if (!pathname.includes(".")) {
62
+ content = yield (0, import_reader.readFile)(`${filepath}.html`);
63
+ if (!content) {
64
+ content = yield (0, import_reader.readFile)(`${filepath}/index.html`);
65
+ }
66
+ }
67
+ if (content) {
68
+ contentType = import_utils.mime.contentType("html");
29
69
  }
30
70
  }
31
-
32
- // set content-type as html
33
- if (content) {
34
- contentType = _utils.mime.contentType('html');
71
+ if (!content) {
72
+ return null;
35
73
  }
36
- }
37
- if (!content) {
38
- return null;
39
- }
40
- return {
41
- content,
42
- contentType: contentType || ''
43
- };
74
+ return {
75
+ content,
76
+ contentType: contentType || ""
77
+ };
78
+ });
44
79
  }
45
80
  const trimLeft = (str, prefix) => {
46
81
  if (str.startsWith(prefix)) {
47
82
  return str.substring(prefix.length);
48
83
  }
49
84
  return str;
50
- };
85
+ };
@@ -1,13 +1,28 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ RenderLevel: () => RenderLevel
5
21
  });
6
- exports.RenderLevel = void 0;
7
- let RenderLevel;
8
- exports.RenderLevel = RenderLevel;
9
- (function (RenderLevel) {
10
- RenderLevel[RenderLevel["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
11
- RenderLevel[RenderLevel["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
12
- RenderLevel[RenderLevel["SERVER_RENDER"] = 2] = "SERVER_RENDER";
13
- })(RenderLevel || (exports.RenderLevel = RenderLevel = {}));
22
+ module.exports = __toCommonJS(stdin_exports);
23
+ var RenderLevel = /* @__PURE__ */ ((RenderLevel2) => {
24
+ RenderLevel2[RenderLevel2["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
25
+ RenderLevel2[RenderLevel2["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
26
+ RenderLevel2[RenderLevel2["SERVER_RENDER"] = 2] = "SERVER_RENDER";
27
+ return RenderLevel2;
28
+ })(RenderLevel || {});
@@ -1,25 +1,32 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RouteMatchManager = void 0;
7
- Object.defineProperty(exports, "RouteMatcher", {
8
- enumerable: true,
9
- get: function () {
10
- return _matcher.RouteMatcher;
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 stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ RouteMatchManager: () => RouteMatchManager,
21
+ RouteMatcher: () => import_matcher.RouteMatcher
12
22
  });
13
- var _matcher = require("./matcher");
14
- 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; }
23
+ module.exports = __toCommonJS(stdin_exports);
24
+ var import_matcher = require("./matcher");
15
25
  class RouteMatchManager {
16
26
  constructor() {
17
- _defineProperty(this, "matchers", void 0);
18
- _defineProperty(this, "specs", []);
27
+ this.specs = [];
19
28
  this.matchers = [];
20
29
  }
21
-
22
- // get all routes matches pathname
23
30
  filter(pathname) {
24
31
  return this.matchers.reduce((matches, matcher) => {
25
32
  if (matcher.matchUrlPath(pathname)) {
@@ -28,8 +35,6 @@ class RouteMatchManager {
28
35
  return matches;
29
36
  }, []);
30
37
  }
31
-
32
- // get best match from a set of matches
33
38
  best(pathname, matches) {
34
39
  let best;
35
40
  let matchedLen = 0;
@@ -45,29 +50,24 @@ class RouteMatchManager {
45
50
  }
46
51
  return best;
47
52
  }
48
-
49
- // reset routes matcher
50
53
  reset(specs) {
51
54
  this.specs = specs;
52
55
  const matchers = specs.reduce((ms, spec) => {
53
- ms.push(new _matcher.RouteMatcher(spec));
56
+ ms.push(new import_matcher.RouteMatcher(spec));
54
57
  return ms;
55
58
  }, []);
56
59
  this.matchers = matchers;
57
60
  }
58
-
59
- // get best match from all matcher in manager
60
61
  match(pathname) {
61
62
  const matches = this.filter(pathname);
62
63
  const best = this.best(pathname, matches);
63
64
  return best;
64
65
  }
65
66
  matchEntry(entryname) {
66
- return this.matchers.find(matcher => matcher.matchEntry(entryname));
67
+ return this.matchers.find((matcher) => matcher.matchEntry(entryname));
67
68
  }
68
69
  getBundles() {
69
- 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);
70
71
  return bundles;
71
72
  }
72
73
  }
73
- exports.RouteMatchManager = RouteMatchManager;
@@ -1,36 +1,41 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ RouteMatcher: () => RouteMatcher
5
21
  });
6
- exports.RouteMatcher = void 0;
7
- var _pathToRegexp = require("path-to-regexp");
8
- var _route = require("./route");
9
- 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; }
10
- // avoid import @modern-js/utils
11
- const removeTailSlash = s => s.replace(/\/+$/, '');
22
+ module.exports = __toCommonJS(stdin_exports);
23
+ var import_path_to_regexp = require("path-to-regexp");
24
+ var import_route = require("./route");
25
+ const removeTailSlash = (s) => s.replace(/\/+$/, "");
12
26
  const toPath = (reg, params) => {
13
- const fn = (0, _pathToRegexp.compile)(reg, {
14
- encode: encodeURIComponent
15
- });
27
+ const fn = (0, import_path_to_regexp.compile)(reg, { encode: encodeURIComponent });
16
28
  return fn(params);
17
29
  };
18
-
19
- // eslint-disable-next-line no-useless-escape
20
30
  const regCharsDetector = /[^a-zA-Z\-_0-9\/\.]/;
21
31
  class RouteMatcher {
22
32
  constructor(spec) {
23
- _defineProperty(this, "spec", void 0);
24
- _defineProperty(this, "urlPath", '');
25
- _defineProperty(this, "urlMatcher", void 0);
26
- _defineProperty(this, "urlReg", void 0);
33
+ this.urlPath = "";
27
34
  this.spec = spec;
28
35
  this.setupUrlPath();
29
36
  }
30
-
31
- // generate modern route object
32
37
  generate(url) {
33
- const route = new _route.ModernRoute(this.spec);
38
+ const route = new import_route.ModernRoute(this.spec);
34
39
  if (this.urlPath) {
35
40
  const params = this.parseURLParams(url);
36
41
  route.urlPath = toPath(route.urlPath, params);
@@ -46,30 +51,25 @@ class RouteMatcher {
46
51
  return matchResult.params;
47
52
  }
48
53
  }
49
-
50
- // get match url length
51
54
  matchLength(pathname) {
55
+ var _a;
52
56
  if (!this.urlReg) {
53
57
  return this.urlPath.length;
54
58
  } else {
55
- var _result$;
56
59
  const result = this.urlReg.exec(pathname);
57
- return (result === null || result === void 0 ? void 0 : (_result$ = result[0]) === null || _result$ === void 0 ? void 0 : _result$.length) || null;
60
+ return ((_a = result == null ? void 0 : result[0]) == null ? void 0 : _a.length) || null;
58
61
  }
59
62
  }
60
-
61
- // if match url path
62
63
  matchUrlPath(requestUrl) {
63
- let urlWithoutSlash = requestUrl.endsWith('/') && requestUrl !== '/' ? requestUrl.slice(0, -1) : requestUrl;
64
- if (urlWithoutSlash.endsWith('.html')) {
64
+ let urlWithoutSlash = requestUrl.endsWith("/") && requestUrl !== "/" ? requestUrl.slice(0, -1) : requestUrl;
65
+ if (urlWithoutSlash.endsWith(".html")) {
65
66
  urlWithoutSlash = urlWithoutSlash.slice(0, -5);
66
67
  }
67
68
  if (this.urlMatcher) {
68
69
  return Boolean(this.urlMatcher(urlWithoutSlash));
69
70
  } else {
70
71
  if (urlWithoutSlash.startsWith(this.urlPath)) {
71
- // avoid /abcd match /a
72
- 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}/`)) {
73
73
  return false;
74
74
  }
75
75
  return true;
@@ -80,23 +80,18 @@ class RouteMatcher {
80
80
  matchEntry(entryName) {
81
81
  return this.spec.entryName === entryName;
82
82
  }
83
-
84
- // compiler urlPath to regexp if necessary
85
83
  setupUrlPath() {
86
- const {
87
- urlPath
88
- } = this.spec;
89
- this.urlPath = urlPath === '/' ? urlPath : removeTailSlash(urlPath);
84
+ const { urlPath } = this.spec;
85
+ this.urlPath = urlPath === "/" ? urlPath : removeTailSlash(urlPath);
90
86
  const useReg = regCharsDetector.test(urlPath);
91
87
  if (useReg) {
92
- this.urlMatcher = (0, _pathToRegexp.match)(urlPath, {
88
+ this.urlMatcher = (0, import_path_to_regexp.match)(urlPath, {
93
89
  end: false,
94
90
  decode: decodeURIComponent
95
91
  });
96
- this.urlReg = (0, _pathToRegexp.pathToRegexp)(urlPath, [], {
92
+ this.urlReg = (0, import_path_to_regexp.pathToRegexp)(urlPath, [], {
97
93
  end: false
98
94
  });
99
95
  }
100
96
  }
101
97
  }
102
- exports.RouteMatcher = RouteMatcher;
@@ -1,32 +1,35 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ ModernRoute: () => ModernRoute
5
21
  });
6
- exports.ModernRoute = void 0;
7
- 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; }
22
+ module.exports = __toCommonJS(stdin_exports);
8
23
  class ModernRoute {
9
24
  constructor(routeSpec) {
10
- var _routeSpec$enableMode;
11
- _defineProperty(this, "entryName", void 0);
12
- _defineProperty(this, "urlPath", void 0);
13
- _defineProperty(this, "entryPath", void 0);
14
- _defineProperty(this, "bundle", void 0);
15
- _defineProperty(this, "isApi", void 0);
16
- _defineProperty(this, "isSSR", void 0);
17
- _defineProperty(this, "isSPA", void 0);
18
- _defineProperty(this, "enableModernMode", void 0);
19
- _defineProperty(this, "params", {});
20
- _defineProperty(this, "responseHeaders", void 0);
21
- this.entryName = routeSpec.entryName || '';
25
+ this.params = {};
26
+ this.entryName = routeSpec.entryName || "";
22
27
  this.urlPath = routeSpec.urlPath;
23
- this.entryPath = routeSpec.entryPath || '';
28
+ this.entryPath = routeSpec.entryPath || "";
24
29
  this.isSSR = routeSpec.isSSR || false;
25
30
  this.isSPA = routeSpec.isSPA || false;
26
31
  this.isApi = routeSpec.isApi || false;
27
- this.bundle = routeSpec.bundle || '';
28
- this.enableModernMode = (_routeSpec$enableMode = routeSpec.enableModernMode) !== null && _routeSpec$enableMode !== void 0 ? _routeSpec$enableMode : false;
32
+ this.bundle = routeSpec.bundle || "";
29
33
  this.responseHeaders = routeSpec.responseHeaders;
30
34
  }
31
35
  }
32
- exports.ModernRoute = ModernRoute;
@@ -1,63 +1,92 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ createStaticFileHandler: () => createStaticFileHandler,
27
+ faviconFallbackHandler: () => faviconFallbackHandler
5
28
  });
6
- exports.faviconFallbackHandler = exports.createStaticFileHandler = void 0;
7
- var _serveStatic = _interopRequireDefault(require("serve-static"));
8
- var _utils = require("@modern-js/utils");
9
- var _utils2 = require("../utils");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- // Todo 看看是不是能 fork 一份,即使命中也返回
12
-
29
+ module.exports = __toCommonJS(stdin_exports);
30
+ var import_serve_static = __toESM(require("serve-static"));
31
+ var import_utils = require("@modern-js/utils");
32
+ var import_utils2 = require("../utils");
33
+ var __async = (__this, __arguments, generator) => {
34
+ return new Promise((resolve, reject) => {
35
+ var fulfilled = (value) => {
36
+ try {
37
+ step(generator.next(value));
38
+ } catch (e) {
39
+ reject(e);
40
+ }
41
+ };
42
+ var rejected = (value) => {
43
+ try {
44
+ step(generator.throw(value));
45
+ } catch (e) {
46
+ reject(e);
47
+ }
48
+ };
49
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
50
+ step((generator = generator.apply(__this, __arguments)).next());
51
+ });
52
+ };
13
53
  const removedPrefix = (req, prefix) => {
14
- if ((0, _utils2.useLocalPrefix)(prefix)) {
54
+ if ((0, import_utils2.useLocalPrefix)(prefix)) {
15
55
  req.url = req.url.slice(prefix.length);
16
56
  return () => {
17
57
  req.url = prefix + req.url;
18
58
  };
19
59
  } else {
20
60
  return () => {
21
- // emptyy
22
61
  };
23
62
  }
24
63
  };
25
64
  const faviconFallbackHandler = (context, next) => {
26
- if (context.url === '/favicon.ico') {
65
+ if (context.url === "/favicon.ico") {
27
66
  context.res.statusCode = 204;
28
67
  context.res.end();
29
68
  } else {
30
69
  next();
31
70
  }
32
71
  };
33
- exports.faviconFallbackHandler = faviconFallbackHandler;
34
- const createStaticFileHandler = (rules, output = {}) =>
35
- // eslint-disable-next-line consistent-return
36
- async (context, next) => {
37
- const {
38
- url: requestUrl,
39
- req,
40
- res
41
- } = context;
42
- const {
43
- assetPrefix = '/'
44
- } = output;
45
- const hitRule = rules.find(item => {
46
- if ((0, _utils.isString)(item.path) && requestUrl.startsWith(item.path)) {
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)) {
47
77
  return true;
48
- } else if ((0, _utils.isRegExp)(item.path) && item.path.test(requestUrl)) {
78
+ } else if ((0, import_utils.isRegExp)(item.path) && item.path.test(requestUrl)) {
49
79
  return true;
50
80
  }
51
81
  return false;
52
82
  });
53
83
  if (hitRule) {
54
84
  const resume = removedPrefix(req, assetPrefix);
55
- (0, _serveStatic.default)(hitRule.target)(req, res, () => {
85
+ (0, import_serve_static.default)(hitRule.target)(req, res, () => {
56
86
  resume();
57
87
  next();
58
88
  });
59
89
  } else {
60
90
  return next();
61
91
  }
62
- };
63
- exports.createStaticFileHandler = createStaticFileHandler;
92
+ });