@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.
Files changed (130) hide show
  1. package/CHANGELOG.md +139 -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 +44 -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 +150 -145
  34. package/dist/js/modern/server/modern-server-split.js +46 -12
  35. package/dist/js/modern/server/modern-server.js +384 -422
  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 +53 -30
  40. package/dist/js/node/index.js +37 -57
  41. package/dist/js/node/libs/context/context.js +83 -94
  42. package/dist/js/node/libs/context/index.js +28 -13
  43. package/dist/js/node/libs/hook-api/index.js +76 -48
  44. package/dist/js/node/libs/hook-api/route.js +26 -11
  45. package/dist/js/node/libs/hook-api/template.js +41 -39
  46. package/dist/js/node/libs/loadConfig.js +73 -35
  47. package/dist/js/node/libs/metrics.js +25 -9
  48. package/dist/js/node/libs/proxy.js +89 -44
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +99 -56
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +147 -128
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +65 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +58 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +105 -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 +54 -14
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +33 -12
  57. package/dist/js/node/libs/render/cache/spr.js +161 -129
  58. package/dist/js/node/libs/render/cache/type.js +15 -5
  59. package/dist/js/node/libs/render/cache/util.js +99 -45
  60. package/dist/js/node/libs/render/index.js +106 -67
  61. package/dist/js/node/libs/render/measure.js +58 -31
  62. package/dist/js/node/libs/render/reader.js +95 -70
  63. package/dist/js/node/libs/render/ssr.js +80 -47
  64. package/dist/js/node/libs/render/static.js +79 -40
  65. package/dist/js/node/libs/render/type.js +31 -12
  66. package/dist/js/node/libs/route/index.js +31 -26
  67. package/dist/js/node/libs/route/matcher.js +40 -41
  68. package/dist/js/node/libs/route/route.js +29 -22
  69. package/dist/js/node/libs/serve-file.js +66 -32
  70. package/dist/js/node/server/index.js +168 -160
  71. package/dist/js/node/server/modern-server-split.js +72 -22
  72. package/dist/js/node/server/modern-server.js +403 -445
  73. package/dist/js/node/type.js +15 -3
  74. package/dist/js/node/utils.js +85 -52
  75. package/dist/js/node/worker-server.js +57 -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 +267 -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 +493 -327
  108. package/dist/js/treeshaking/server/modern-server-split.js +352 -144
  109. package/dist/js/treeshaking/server/modern-server.js +1048 -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,74 +1,113 @@
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 __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 render_exports = {};
45
+ __export(render_exports, {
46
+ createRenderHandler: () => createRenderHandler
5
47
  });
6
- exports.createRenderHandler = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _constants = require("../../constants");
10
- var _static = require("./static");
11
- var _reader = require("./reader");
12
- var ssr = _interopRequireWildcard(require("./ssr"));
13
- var _modern = require("./modern");
14
- 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); }
15
- 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; }
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
+ module.exports = __toCommonJS(render_exports);
49
+ var import_path = __toESM(require("path"));
50
+ var import_utils = require("@modern-js/utils");
51
+ var import_constants = require("../../constants");
52
+ var import_static = require("./static");
53
+ var import_reader = require("./reader");
54
+ var ssr = __toESM(require("./ssr"));
17
55
  const createRenderHandler = ({
18
56
  distDir,
19
57
  staticGenerate
20
- }) => async function render({
21
- ctx,
22
- route,
23
- runner
24
- }) {
25
- if (ctx.resHasHandled()) {
26
- return null;
27
- }
28
- const {
29
- entryPath,
30
- urlPath
31
- } = route;
32
- const entry = _path.default.join(distDir, entryPath);
33
- if (!route.isSPA) {
34
- const result = await (0, _static.handleDirectory)(ctx, entry, urlPath);
35
- return result;
36
- }
37
-
38
- // only spa can use es6-html
39
- const modernEntry = (0, _modern.getModernEntry)(entry);
40
- const useModern =
41
- // route.enableModernMode &&
42
- (0, _modern.supportModern)(ctx) && _utils.fs.existsSync(modernEntry);
43
- const templatePath = useModern ? modernEntry : entry;
44
- if (!_utils.fs.existsSync(templatePath)) {
45
- throw new Error(`Could not find template file: ${templatePath}`);
46
- }
47
- const content = await (0, _reader.readFile)(templatePath);
48
- if (!content) {
49
- return null;
50
- }
51
-
52
- // handles ssr first
53
- if (route.isSSR) {
54
- try {
55
- const result = await ssr.render(ctx, {
56
- distDir,
57
- entryName: route.entryName,
58
- urlPath: route.urlPath,
59
- bundle: route.bundle,
60
- template: content.toString(),
61
- staticGenerate
62
- }, runner);
58
+ }) => function render(_0) {
59
+ return __async(this, arguments, function* ({
60
+ ctx,
61
+ route,
62
+ runner
63
+ }) {
64
+ if (ctx.resHasHandled()) {
65
+ return null;
66
+ }
67
+ const { entryPath, urlPath } = route;
68
+ const entry = import_path.default.join(distDir, entryPath);
69
+ if (!route.isSPA) {
70
+ const result = yield (0, import_static.handleDirectory)(ctx, entry, urlPath);
63
71
  return result;
64
- } catch (err) {
65
- ctx.error(_constants.ERROR_DIGEST.ERENDER, err.stack || err.message);
66
- ctx.res.setHeader('x-modern-ssr-fallback', '1');
67
72
  }
68
- }
69
- return {
70
- content,
71
- contentType: _utils.mime.contentType(_path.default.extname(templatePath))
72
- };
73
+ const templatePath = entry;
74
+ if (!import_utils.fs.existsSync(templatePath)) {
75
+ throw new Error(`Could not find template file: ${templatePath}`);
76
+ }
77
+ const content = yield (0, import_reader.readFile)(templatePath);
78
+ if (!content) {
79
+ return null;
80
+ }
81
+ if (route.isSSR) {
82
+ try {
83
+ const result = yield ssr.render(
84
+ ctx,
85
+ {
86
+ distDir,
87
+ entryName: route.entryName,
88
+ urlPath: route.urlPath,
89
+ bundle: route.bundle,
90
+ template: content.toString(),
91
+ staticGenerate
92
+ },
93
+ runner
94
+ );
95
+ return result;
96
+ } catch (err) {
97
+ ctx.error(
98
+ import_constants.ERROR_DIGEST.ERENDER,
99
+ err.stack || err.message
100
+ );
101
+ ctx.res.setHeader("x-modern-ssr-fallback", "1");
102
+ }
103
+ }
104
+ return {
105
+ content,
106
+ contentType: import_utils.mime.contentType(import_path.default.extname(templatePath))
107
+ };
108
+ });
73
109
  };
74
- exports.createRenderHandler = createRenderHandler;
110
+ // Annotate the CommonJS export names for ESM import in node:
111
+ 0 && (module.exports = {
112
+ createRenderHandler
113
+ });
@@ -1,45 +1,64 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __export = (target, all) => {
23
+ for (var name in all)
24
+ __defProp(target, name, { get: all[name], enumerable: true });
25
+ };
26
+ var __copyProps = (to, from, except, desc) => {
27
+ if (from && typeof from === "object" || typeof from === "function") {
28
+ for (let key of __getOwnPropNames(from))
29
+ if (!__hasOwnProp.call(to, key) && key !== except)
30
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
31
+ }
32
+ return to;
33
+ };
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ var measure_exports = {};
36
+ __export(measure_exports, {
37
+ createLogger: () => createLogger,
38
+ createMetrics: () => createMetrics
5
39
  });
6
- exports.createMetrics = exports.createLogger = void 0;
7
- var _utils = require("../../utils");
8
- 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; }
9
- 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; }
10
- 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; }
40
+ module.exports = __toCommonJS(measure_exports);
41
+ var import_utils = require("../../utils");
11
42
  const createMetrics = (context, metrics) => {
12
- const {
13
- entryName: entry,
14
- request
15
- } = context;
16
- const {
17
- pathname = ''
18
- } = request || {};
43
+ const { entryName: entry, request } = context;
44
+ const { pathname = "" } = request || {};
19
45
  const emitTimer = (name, cost, tags = {}) => {
20
- metrics.emitTimer(name, cost, _objectSpread(_objectSpread({}, tags), {}, {
46
+ metrics.emitTimer(name, cost, __spreadProps(__spreadValues({}, tags), {
21
47
  pathname,
22
48
  entry
23
49
  }));
24
50
  };
25
51
  const emitCounter = (name, counter, tags = {}) => {
26
- metrics.emitCounter(name, counter, _objectSpread(_objectSpread({}, tags), {}, {
52
+ metrics.emitCounter(name, counter, __spreadProps(__spreadValues({}, tags), {
27
53
  pathname,
28
54
  entry
29
55
  }));
30
56
  };
31
- return {
32
- emitTimer,
33
- emitCounter
34
- };
57
+ return { emitTimer, emitCounter };
35
58
  };
36
- exports.createMetrics = createMetrics;
37
59
  const createLogger = (serverContext, logger) => {
38
60
  const request = serverContext.request || {};
39
- const {
40
- headers = {},
41
- pathname = ''
42
- } = request;
61
+ const { headers = {}, pathname = "" } = request;
43
62
  const debug = (message, ...args) => {
44
63
  logger.debug(`SSR Debug - ${message}, req.url = %s`, ...args, pathname);
45
64
  };
@@ -49,9 +68,14 @@ const createLogger = (serverContext, logger) => {
49
68
  const error = (message, e) => {
50
69
  if (!e) {
51
70
  e = message;
52
- message = '';
71
+ message = "";
53
72
  }
54
- logger.error(`SSR Error - ${message}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, pathname, (0, _utils.headersWithoutCookie)(headers));
73
+ logger.error(
74
+ `SSR Error - ${message}, error = %s, req.url = %s, req.headers = %o`,
75
+ e instanceof Error ? e.stack || e.message : e,
76
+ pathname,
77
+ (0, import_utils.headersWithoutCookie)(headers)
78
+ );
55
79
  };
56
80
  return {
57
81
  error,
@@ -59,5 +83,8 @@ const createLogger = (serverContext, logger) => {
59
83
  debug
60
84
  };
61
85
  };
62
- /* eslint-enable no-param-reassign */
63
- exports.createLogger = createLogger;
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ createLogger,
89
+ createMetrics
90
+ });
@@ -1,115 +1,140 @@
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 __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 reader_exports = {};
45
+ __export(reader_exports, {
46
+ LruReader: () => LruReader,
47
+ close: () => close,
48
+ init: () => init,
49
+ readFile: () => readFile,
50
+ updateFile: () => updateFile
5
51
  });
6
- exports.updateFile = exports.readFile = exports.init = exports.close = exports.LruReader = void 0;
7
- var _utils = require("@modern-js/utils");
8
- var _lruCache = _interopRequireDefault(require("lru-cache"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- 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; }
52
+ module.exports = __toCommonJS(reader_exports);
53
+ var import_utils = require("@modern-js/utils");
54
+ var import_lru_cache = __toESM(require("lru-cache"));
11
55
  const Byte = 1;
12
56
  const KB = 1024 * Byte;
13
57
  const MB = 1024 * KB;
14
- const getContentLength = cache => cache.content.length;
15
- const createCacheItem = async (filepath, mtime) => {
16
- const content = await _utils.fs.readFile(filepath);
58
+ const getContentLength = (cache) => cache.content.length;
59
+ const createCacheItem = (filepath, mtime) => __async(void 0, null, function* () {
60
+ const content = yield import_utils.fs.readFile(filepath);
17
61
  return {
18
62
  content,
19
63
  mtime
20
64
  };
21
- };
65
+ });
22
66
  class LruReader {
23
- // private timer?: NodeJS.Timeout;
24
-
25
67
  constructor() {
26
- _defineProperty(this, "cache", void 0);
27
- this.cache = new _lruCache.default({
68
+ this.cache = new import_lru_cache.default({
28
69
  max: 256 * MB,
29
70
  length: getContentLength,
30
- maxAge: 5 * 60 * 5000 // 60s
71
+ maxAge: 5 * 60 * 5e3
31
72
  });
32
73
  }
33
-
34
74
  init() {
35
- // this.timeTask();
36
75
  }
37
76
  close() {
38
- // if (this.timer) {
39
- // clearInterval(this.timer);
40
- // }
41
77
  }
42
- async read(filepath) {
43
- if (this.cache.has(filepath)) {
44
- const {
45
- content
46
- } = this.cache.get(filepath);
47
- return {
48
- content
49
- };
50
- }
51
- if (!_utils.fs.existsSync(filepath)) {
52
- return null;
53
- }
54
- const stat = _utils.fs.statSync(filepath);
55
- if (stat.isDirectory()) {
56
- return null;
57
- }
58
-
59
- // if file more than 20 MB
60
- if (stat.size > 20 * MB) {
61
- return null;
62
- }
63
- const item = await createCacheItem(filepath, stat.mtime);
64
- this.cache.set(filepath, item);
65
- return item;
78
+ read(filepath) {
79
+ return __async(this, null, function* () {
80
+ if (this.cache.has(filepath)) {
81
+ const { content } = this.cache.get(filepath);
82
+ return { content };
83
+ }
84
+ if (!import_utils.fs.existsSync(filepath)) {
85
+ return null;
86
+ }
87
+ const stat = import_utils.fs.statSync(filepath);
88
+ if (stat.isDirectory()) {
89
+ return null;
90
+ }
91
+ if (stat.size > 20 * MB) {
92
+ return null;
93
+ }
94
+ const item = yield createCacheItem(filepath, stat.mtime);
95
+ this.cache.set(filepath, item);
96
+ return item;
97
+ });
66
98
  }
67
99
  update() {
68
- const {
69
- cache
70
- } = this;
100
+ const { cache } = this;
71
101
  const files = cache.keys();
72
102
  for (const filepath of files) {
73
- if (!_utils.fs.existsSync(filepath)) {
103
+ if (!import_utils.fs.existsSync(filepath)) {
74
104
  cache.del(filepath);
75
105
  }
76
106
  try {
77
107
  const item = cache.get(filepath);
78
- const stat = _utils.fs.statSync(filepath);
79
- const {
80
- mtime
81
- } = stat;
82
- // file is modify
108
+ const stat = import_utils.fs.statSync(filepath);
109
+ const { mtime } = stat;
83
110
  if (item.mtime < mtime) {
84
111
  cache.del(filepath);
85
112
  }
86
113
  } catch (e) {
87
- // for safe
88
114
  cache.del(filepath);
89
115
  }
90
116
  }
91
117
  }
92
-
93
- // private timeTask() {
94
- // this.timer = setInterval(() => this.update, 5 * 60 * 1000).unref();
95
- // }
96
118
  }
97
- exports.LruReader = LruReader;
98
119
  const reader = new LruReader();
99
- const readFile = async filepath => {
100
- const file = await reader.read(filepath);
101
- return file === null || file === void 0 ? void 0 : file.content;
102
- };
103
- exports.readFile = readFile;
120
+ const readFile = (filepath) => __async(void 0, null, function* () {
121
+ const file = yield reader.read(filepath);
122
+ return file == null ? void 0 : file.content;
123
+ });
104
124
  const updateFile = () => {
105
125
  reader.update();
106
126
  };
107
- exports.updateFile = updateFile;
108
127
  const init = () => {
109
128
  reader.init();
110
129
  };
111
- exports.init = init;
112
130
  const close = () => {
113
131
  reader.close();
114
132
  };
115
- exports.close = close;
133
+ // Annotate the CommonJS export names for ESM import in node:
134
+ 0 && (module.exports = {
135
+ LruReader,
136
+ close,
137
+ init,
138
+ readFile,
139
+ updateFile
140
+ });
@@ -1,30 +1,64 @@
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 __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 ssr_exports = {};
45
+ __export(ssr_exports, {
46
+ render: () => render
5
47
  });
6
- exports.render = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _utils = require("@modern-js/utils");
9
- var _cookie = _interopRequireDefault(require("cookie"));
10
- var _cache = _interopRequireDefault(require("./cache"));
11
- var _measure = require("./measure");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- const render = async (ctx, renderOptions, runner) => {
14
- var _ctx$res;
15
- const {
16
- urlPath,
17
- bundle,
18
- distDir,
19
- template,
20
- entryName,
21
- staticGenerate
22
- } = renderOptions;
23
- const bundleJS = _path.default.join(distDir, bundle);
24
- const loadableUri = _path.default.join(distDir, _utils.LOADABLE_STATS_FILE);
25
- const loadableStats = _utils.fs.existsSync(loadableUri) ? require(loadableUri) : '';
26
- const routesManifestUri = _path.default.join(distDir, _utils.ROUTE_MINIFEST_FILE);
27
- const routeManifest = _utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : undefined;
48
+ module.exports = __toCommonJS(ssr_exports);
49
+ var import_path = __toESM(require("path"));
50
+ var import_utils = require("@modern-js/utils");
51
+ var import_cookie = __toESM(require("cookie"));
52
+ var import_cache = __toESM(require("./cache"));
53
+ var import_measure = require("./measure");
54
+ const render = (ctx, renderOptions, runner) => __async(void 0, null, function* () {
55
+ var _a;
56
+ const { urlPath, bundle, distDir, template, entryName, staticGenerate } = renderOptions;
57
+ const bundleJS = import_path.default.join(distDir, bundle);
58
+ const loadableUri = import_path.default.join(distDir, import_utils.LOADABLE_STATS_FILE);
59
+ const loadableStats = import_utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
60
+ const routesManifestUri = import_path.default.join(distDir, import_utils.ROUTE_MINIFEST_FILE);
61
+ const routeManifest = import_utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
28
62
  const context = {
29
63
  request: {
30
64
  baseUrl: urlPath,
@@ -33,58 +67,57 @@ const render = async (ctx, renderOptions, runner) => {
33
67
  host: ctx.host,
34
68
  query: ctx.query,
35
69
  url: ctx.href,
36
- cookieMap: _cookie.default.parse(ctx.headers.cookie || ''),
70
+ cookieMap: import_cookie.default.parse(ctx.headers.cookie || ""),
37
71
  headers: ctx.headers
38
72
  },
39
73
  response: {
40
74
  setHeader: (key, value) => {
41
75
  return ctx.res.setHeader(key, value);
42
76
  },
43
- status: code => {
77
+ status: (code) => {
44
78
  ctx.res.statusCode = code;
45
79
  },
46
- locals: ((_ctx$res = ctx.res) === null || _ctx$res === void 0 ? void 0 : _ctx$res.locals) || {}
80
+ locals: ((_a = ctx.res) == null ? void 0 : _a.locals) || {}
47
81
  },
48
82
  redirection: {},
49
83
  template,
50
84
  loadableStats,
51
85
  routeManifest,
52
- // for streaming ssr
53
86
  entryName,
54
87
  staticGenerate,
55
- logger: undefined,
56
- metrics: undefined,
88
+ logger: void 0,
89
+ metrics: void 0,
57
90
  req: ctx.req,
58
91
  res: ctx.res
59
92
  };
60
- context.logger = (0, _measure.createLogger)(context, ctx.logger);
61
- context.metrics = (0, _measure.createMetrics)(context, ctx.metrics);
93
+ context.logger = (0, import_measure.createLogger)(context, ctx.logger);
94
+ context.metrics = (0, import_measure.createMetrics)(context, ctx.metrics);
62
95
  runner.extendSSRContext(context);
63
- const serverRender = require(bundleJS)[_utils.SERVER_RENDER_FUNCTION_NAME];
64
- const content = await (0, _cache.default)(serverRender, ctx)(context);
65
- const {
66
- url,
67
- status = 302
68
- } = context.redirection;
96
+ const serverRender = require(bundleJS)[import_utils.SERVER_RENDER_FUNCTION_NAME];
97
+ const content = yield (0, import_cache.default)(serverRender, ctx)(context);
98
+ const { url, status = 302 } = context.redirection;
69
99
  if (url) {
70
100
  return {
71
101
  content: url,
72
- contentType: '',
102
+ contentType: "",
73
103
  statusCode: status,
74
104
  redirect: true
75
105
  };
76
106
  }
77
- if (typeof content === 'string') {
107
+ if (typeof content === "string") {
78
108
  return {
79
109
  content,
80
- contentType: _utils.mime.contentType('html')
110
+ contentType: import_utils.mime.contentType("html")
81
111
  };
82
112
  } else {
83
113
  return {
84
- content: '',
114
+ content: "",
85
115
  contentStream: content,
86
- contentType: _utils.mime.contentType('html')
116
+ contentType: import_utils.mime.contentType("html")
87
117
  };
88
118
  }
89
- };
90
- exports.render = render;
119
+ });
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
122
+ render
123
+ });