@modern-js/prod-server 2.14.0 → 2.16.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/constants.js +15 -31
  3. package/dist/cjs/index.js +35 -37
  4. package/dist/cjs/libs/context/context.js +53 -66
  5. package/dist/cjs/libs/context/index.js +15 -28
  6. package/dist/cjs/libs/hook-api/index.js +59 -54
  7. package/dist/cjs/libs/hook-api/route.js +28 -30
  8. package/dist/cjs/libs/hook-api/template.js +30 -34
  9. package/dist/cjs/libs/loadConfig.js +74 -65
  10. package/dist/cjs/libs/logger.js +46 -37
  11. package/dist/cjs/libs/metrics.js +7 -25
  12. package/dist/cjs/libs/proxy.js +29 -46
  13. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +48 -64
  14. package/dist/cjs/libs/render/cache/__tests__/cache.test.js +53 -37
  15. package/dist/cjs/libs/render/cache/__tests__/cacheable.js +38 -34
  16. package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +22 -30
  17. package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +86 -46
  18. package/dist/cjs/libs/render/cache/index.js +17 -37
  19. package/dist/cjs/libs/render/cache/page-caches/index.js +12 -28
  20. package/dist/cjs/libs/render/cache/page-caches/lru.js +32 -40
  21. package/dist/cjs/libs/render/cache/spr.js +104 -111
  22. package/dist/cjs/libs/render/cache/type.js +4 -15
  23. package/dist/cjs/libs/render/cache/util.js +29 -53
  24. package/dist/cjs/libs/render/index.js +75 -73
  25. package/dist/cjs/libs/render/measure.js +19 -34
  26. package/dist/cjs/libs/render/reader.js +52 -61
  27. package/dist/cjs/libs/render/ssr.js +34 -66
  28. package/dist/cjs/libs/render/static.js +22 -45
  29. package/dist/cjs/libs/render/type.js +10 -28
  30. package/dist/cjs/libs/render/utils.js +17 -38
  31. package/dist/cjs/libs/route/index.js +32 -31
  32. package/dist/cjs/libs/route/matcher.js +38 -38
  33. package/dist/cjs/libs/route/route.js +29 -26
  34. package/dist/cjs/libs/serveFile.js +23 -41
  35. package/dist/cjs/server/index.js +101 -107
  36. package/dist/cjs/server/modernServer.js +191 -171
  37. package/dist/cjs/server/modernServerSplit.js +12 -30
  38. package/dist/cjs/type.js +4 -15
  39. package/dist/cjs/utils.js +50 -50
  40. package/dist/cjs/workerServer.js +26 -36
  41. package/dist/esm/constants.js +24 -25
  42. package/dist/esm/index.js +11 -10
  43. package/dist/esm/libs/context/context.js +271 -264
  44. package/dist/esm/libs/context/index.js +3 -3
  45. package/dist/esm/libs/hook-api/index.js +237 -223
  46. package/dist/esm/libs/hook-api/route.js +62 -60
  47. package/dist/esm/libs/hook-api/template.js +117 -115
  48. package/dist/esm/libs/loadConfig.js +68 -69
  49. package/dist/esm/libs/logger.js +188 -174
  50. package/dist/esm/libs/metrics.js +6 -3
  51. package/dist/esm/libs/proxy.js +236 -221
  52. package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +286 -267
  53. package/dist/esm/libs/render/cache/__tests__/cache.test.js +765 -745
  54. package/dist/esm/libs/render/cache/__tests__/cacheable.js +62 -63
  55. package/dist/esm/libs/render/cache/__tests__/error-configuration.js +42 -43
  56. package/dist/esm/libs/render/cache/__tests__/matched-cache.js +134 -135
  57. package/dist/esm/libs/render/cache/index.js +337 -326
  58. package/dist/esm/libs/render/cache/page-caches/index.js +147 -141
  59. package/dist/esm/libs/render/cache/page-caches/lru.js +78 -76
  60. package/dist/esm/libs/render/cache/spr.js +465 -456
  61. package/dist/esm/libs/render/cache/type.js +1 -1
  62. package/dist/esm/libs/render/cache/util.js +266 -246
  63. package/dist/esm/libs/render/index.js +226 -218
  64. package/dist/esm/libs/render/measure.js +136 -128
  65. package/dist/esm/libs/render/reader.js +315 -304
  66. package/dist/esm/libs/render/ssr.js +214 -209
  67. package/dist/esm/libs/render/static.js +208 -198
  68. package/dist/esm/libs/render/type.js +6 -7
  69. package/dist/esm/libs/render/utils.js +8 -9
  70. package/dist/esm/libs/route/index.js +134 -123
  71. package/dist/esm/libs/route/matcher.js +140 -130
  72. package/dist/esm/libs/route/route.js +36 -37
  73. package/dist/esm/libs/serveFile.js +177 -168
  74. package/dist/esm/server/index.js +578 -549
  75. package/dist/esm/server/modernServer.js +1137 -1074
  76. package/dist/esm/server/modernServerSplit.js +344 -328
  77. package/dist/esm/type.js +1 -1
  78. package/dist/esm/utils.js +133 -124
  79. package/dist/esm/workerServer.js +226 -220
  80. package/dist/esm-node/constants.js +7 -14
  81. package/dist/esm-node/index.js +4 -9
  82. package/dist/esm-node/libs/context/context.js +32 -25
  83. package/dist/esm-node/libs/context/index.js +2 -5
  84. package/dist/esm-node/libs/hook-api/index.js +40 -21
  85. package/dist/esm-node/libs/hook-api/route.js +21 -8
  86. package/dist/esm-node/libs/hook-api/template.js +19 -14
  87. package/dist/esm-node/libs/loadConfig.js +11 -28
  88. package/dist/esm-node/libs/logger.js +37 -17
  89. package/dist/esm-node/libs/metrics.js +1 -3
  90. package/dist/esm-node/libs/proxy.js +14 -22
  91. package/dist/esm-node/libs/render/cache/__tests__/cache.fun.test.js +25 -36
  92. package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +23 -11
  93. package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +32 -13
  94. package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +16 -9
  95. package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +80 -25
  96. package/dist/esm-node/libs/render/cache/index.js +3 -10
  97. package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -5
  98. package/dist/esm-node/libs/render/cache/page-caches/lru.js +20 -8
  99. package/dist/esm-node/libs/render/cache/spr.js +79 -80
  100. package/dist/esm-node/libs/render/cache/type.js +1 -0
  101. package/dist/esm-node/libs/render/cache/util.js +13 -23
  102. package/dist/esm-node/libs/render/index.js +10 -28
  103. package/dist/esm-node/libs/render/measure.js +7 -13
  104. package/dist/esm-node/libs/render/reader.js +31 -26
  105. package/dist/esm-node/libs/render/ssr.js +5 -21
  106. package/dist/esm-node/libs/render/static.js +1 -4
  107. package/dist/esm-node/libs/render/type.js +3 -6
  108. package/dist/esm-node/libs/render/utils.js +6 -18
  109. package/dist/esm-node/libs/route/index.js +20 -9
  110. package/dist/esm-node/libs/route/matcher.js +28 -17
  111. package/dist/esm-node/libs/route/route.js +23 -5
  112. package/dist/esm-node/libs/serveFile.js +2 -6
  113. package/dist/esm-node/server/index.js +72 -75
  114. package/dist/esm-node/server/modernServer.js +102 -130
  115. package/dist/esm-node/server/modernServerSplit.js +1 -4
  116. package/dist/esm-node/type.js +1 -0
  117. package/dist/esm-node/utils.js +41 -32
  118. package/dist/esm-node/workerServer.js +9 -10
  119. package/dist/types/libs/context/context.d.ts +1 -1
  120. package/dist/types/server/modernServer.d.ts +1 -1
  121. package/dist/types/utils.d.ts +1 -1
  122. package/package.json +12 -8
@@ -1,98 +1,100 @@
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
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var render_exports = {};
29
- __export(render_exports, {
30
- createRenderHandler: () => createRenderHandler
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createRenderHandler", {
6
+ enumerable: true,
7
+ get: () => createRenderHandler
31
8
  });
32
- module.exports = __toCommonJS(render_exports);
33
- var import_path = __toESM(require("path"));
34
- var import_utils = require("@modern-js/utils");
35
- var import_constants = require("../../constants");
36
- var import_static = require("./static");
37
- var import_reader = require("./reader");
38
- var ssr = __toESM(require("./ssr"));
39
- var import_utils2 = require("./utils");
40
- const createRenderHandler = ({
41
- distDir,
42
- staticGenerate,
43
- forceCSR
44
- }) => async function render({
45
- ctx,
46
- route,
47
- runner
48
- }) {
9
+ const _path = /* @__PURE__ */ _interop_require_default(require("path"));
10
+ const _utils = require("@modern-js/utils");
11
+ const _constants = require("../../constants");
12
+ const _static = require("./static");
13
+ const _reader = require("./reader");
14
+ const _ssr = /* @__PURE__ */ _interop_require_wildcard(require("./ssr"));
15
+ const _utils1 = require("./utils");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ function _getRequireWildcardCache(nodeInterop) {
22
+ if (typeof WeakMap !== "function")
23
+ return null;
24
+ var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
25
+ var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
26
+ return (_getRequireWildcardCache = function(nodeInterop2) {
27
+ return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
28
+ })(nodeInterop);
29
+ }
30
+ function _interop_require_wildcard(obj, nodeInterop) {
31
+ if (!nodeInterop && obj && obj.__esModule) {
32
+ return obj;
33
+ }
34
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
35
+ return {
36
+ default: obj
37
+ };
38
+ }
39
+ var cache = _getRequireWildcardCache(nodeInterop);
40
+ if (cache && cache.has(obj)) {
41
+ return cache.get(obj);
42
+ }
43
+ var newObj = {};
44
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
45
+ for (var key in obj) {
46
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
47
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
48
+ if (desc && (desc.get || desc.set)) {
49
+ Object.defineProperty(newObj, key, desc);
50
+ } else {
51
+ newObj[key] = obj[key];
52
+ }
53
+ }
54
+ }
55
+ newObj.default = obj;
56
+ if (cache) {
57
+ cache.set(obj, newObj);
58
+ }
59
+ return newObj;
60
+ }
61
+ const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
49
62
  if (ctx.resHasHandled()) {
50
63
  return null;
51
64
  }
52
65
  const { entryPath, urlPath } = route;
53
- const entry = import_path.default.join(distDir, entryPath);
66
+ const entry = _path.default.join(distDir, entryPath);
54
67
  if (!route.isSPA) {
55
- const result = await (0, import_static.handleDirectory)(ctx, entry, urlPath);
68
+ const result = await (0, _static.handleDirectory)(ctx, entry, urlPath);
56
69
  return result;
57
70
  }
58
71
  const templatePath = entry;
59
- if (!import_utils.fs.existsSync(templatePath)) {
72
+ if (!_utils.fs.existsSync(templatePath)) {
60
73
  throw new Error(`Could not find template file: ${templatePath}`);
61
74
  }
62
- const content = await (0, import_reader.readFile)(templatePath);
75
+ const content = await (0, _reader.readFile)(templatePath);
63
76
  if (!content) {
64
77
  return null;
65
78
  }
66
79
  const useCSR = forceCSR && ctx.query.csr;
67
80
  if (route.isSSR && !useCSR) {
68
81
  try {
69
- const result = await ssr.render(
70
- ctx,
71
- {
72
- distDir,
73
- entryName: route.entryName,
74
- urlPath: route.urlPath,
75
- bundle: route.bundle,
76
- template: content.toString(),
77
- staticGenerate
78
- },
79
- runner
80
- );
82
+ const result = await _ssr.render(ctx, {
83
+ distDir,
84
+ entryName: route.entryName,
85
+ urlPath: route.urlPath,
86
+ bundle: route.bundle,
87
+ template: content.toString(),
88
+ staticGenerate
89
+ }, runner);
81
90
  return result;
82
91
  } catch (err) {
83
- ctx.error(
84
- import_constants.ERROR_DIGEST.ERENDER,
85
- err.stack || err.message
86
- );
92
+ ctx.error(_constants.ERROR_DIGEST.ERENDER, err.stack || err.message);
87
93
  ctx.res.setHeader("x-modern-ssr-fallback", "1");
88
94
  }
89
95
  }
90
96
  return {
91
- content: route.entryName ? (0, import_utils2.injectServerData)(content.toString(), ctx) : content,
92
- contentType: import_utils.mime.contentType(import_path.default.extname(templatePath))
97
+ content: route.entryName ? (0, _utils1.injectServerData)(content.toString(), ctx) : content,
98
+ contentType: _utils.mime.contentType(_path.default.extname(templatePath))
93
99
  };
94
100
  };
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
97
- createRenderHandler
98
- });
@@ -1,27 +1,19 @@
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) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
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 measure_exports = {};
19
- __export(measure_exports, {
20
- createLogger: () => createLogger,
21
- createMetrics: () => createMetrics
7
+ Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
13
+ createMetrics: () => createMetrics,
14
+ createLogger: () => createLogger
22
15
  });
23
- module.exports = __toCommonJS(measure_exports);
24
- var import_utils = require("../../utils");
16
+ const _utils = require("../../utils");
25
17
  const createMetrics = (context, metrics) => {
26
18
  const { entryName: entry, request } = context;
27
19
  const { pathname = "" } = request || {};
@@ -39,7 +31,10 @@ const createMetrics = (context, metrics) => {
39
31
  entry
40
32
  });
41
33
  };
42
- return { emitTimer, emitCounter };
34
+ return {
35
+ emitTimer,
36
+ emitCounter
37
+ };
43
38
  };
44
39
  const createLogger = (serverContext, logger) => {
45
40
  const request = serverContext.request || {};
@@ -55,12 +50,7 @@ const createLogger = (serverContext, logger) => {
55
50
  e = message;
56
51
  message = "";
57
52
  }
58
- logger.error(
59
- `SSR Error - ${message}, error = %s, req.url = %s, req.headers = %o`,
60
- e instanceof Error ? e.stack || e.message : e,
61
- pathname,
62
- (0, import_utils.headersWithoutCookie)(headers)
63
- );
53
+ 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));
64
54
  };
65
55
  return {
66
56
  error,
@@ -68,8 +58,3 @@ const createLogger = (serverContext, logger) => {
68
58
  debug
69
59
  };
70
60
  };
71
- // Annotate the CommonJS export names for ESM import in node:
72
- 0 && (module.exports = {
73
- createLogger,
74
- createMetrics
75
- });
@@ -1,62 +1,53 @@
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) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
8
6
  for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var reader_exports = {};
29
- __export(reader_exports, {
7
+ Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
30
13
  LruReader: () => LruReader,
31
- close: () => close,
32
- init: () => init,
33
14
  readFile: () => readFile,
34
- updateFile: () => updateFile
15
+ updateFile: () => updateFile,
16
+ init: () => init,
17
+ close: () => close
35
18
  });
36
- module.exports = __toCommonJS(reader_exports);
37
- var import_utils = require("@modern-js/utils");
38
- var import_lru_cache = __toESM(require("lru-cache"));
19
+ const _utils = require("@modern-js/utils");
20
+ const _lrucache = /* @__PURE__ */ _interop_require_default(require("lru-cache"));
21
+ function _define_property(obj, key, value) {
22
+ if (key in obj) {
23
+ Object.defineProperty(obj, key, {
24
+ value,
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true
28
+ });
29
+ } else {
30
+ obj[key] = value;
31
+ }
32
+ return obj;
33
+ }
34
+ function _interop_require_default(obj) {
35
+ return obj && obj.__esModule ? obj : {
36
+ default: obj
37
+ };
38
+ }
39
39
  const Byte = 1;
40
40
  const KB = 1024 * Byte;
41
41
  const MB = 1024 * KB;
42
42
  const getContentLength = (cache) => cache.content.length;
43
43
  const createCacheItem = async (filepath, mtime) => {
44
- const content = await import_utils.fs.readFile(filepath);
44
+ const content = await _utils.fs.readFile(filepath);
45
45
  return {
46
46
  content,
47
47
  mtime
48
48
  };
49
49
  };
50
50
  class LruReader {
51
- // private timer?: NodeJS.Timeout;
52
- constructor() {
53
- this.cache = new import_lru_cache.default({
54
- max: 256 * MB,
55
- length: getContentLength,
56
- maxAge: 5 * 60 * 5e3
57
- // 60s
58
- });
59
- }
60
51
  init() {
61
52
  }
62
53
  close() {
@@ -64,12 +55,14 @@ class LruReader {
64
55
  async read(filepath) {
65
56
  if (this.cache.has(filepath)) {
66
57
  const { content } = this.cache.get(filepath);
67
- return { content };
58
+ return {
59
+ content
60
+ };
68
61
  }
69
- if (!import_utils.fs.existsSync(filepath)) {
62
+ if (!_utils.fs.existsSync(filepath)) {
70
63
  return null;
71
64
  }
72
- const stat = import_utils.fs.statSync(filepath);
65
+ const stat = _utils.fs.statSync(filepath);
73
66
  if (stat.isDirectory()) {
74
67
  return null;
75
68
  }
@@ -84,12 +77,12 @@ class LruReader {
84
77
  const { cache } = this;
85
78
  const files = cache.keys();
86
79
  for (const filepath of files) {
87
- if (!import_utils.fs.existsSync(filepath)) {
80
+ if (!_utils.fs.existsSync(filepath)) {
88
81
  cache.del(filepath);
89
82
  }
90
83
  try {
91
84
  const item = cache.get(filepath);
92
- const stat = import_utils.fs.statSync(filepath);
85
+ const stat = _utils.fs.statSync(filepath);
93
86
  const { mtime } = stat;
94
87
  if (item.mtime < mtime) {
95
88
  cache.del(filepath);
@@ -99,14 +92,20 @@ class LruReader {
99
92
  }
100
93
  }
101
94
  }
102
- // private timeTask() {
103
- // this.timer = setInterval(() => this.update, 5 * 60 * 1000).unref();
104
- // }
95
+ // private timer?: NodeJS.Timeout;
96
+ constructor() {
97
+ _define_property(this, "cache", void 0);
98
+ this.cache = new _lrucache.default({
99
+ max: 256 * MB,
100
+ length: getContentLength,
101
+ maxAge: 5 * 60 * 5e3
102
+ });
103
+ }
105
104
  }
106
105
  const reader = new LruReader();
107
106
  const readFile = async (filepath) => {
108
107
  const file = await reader.read(filepath);
109
- return file == null ? void 0 : file.content;
108
+ return file === null || file === void 0 ? void 0 : file.content;
110
109
  };
111
110
  const updateFile = () => {
112
111
  reader.update();
@@ -117,11 +116,3 @@ const init = () => {
117
116
  const close = () => {
118
117
  reader.close();
119
118
  };
120
- // Annotate the CommonJS export names for ESM import in node:
121
- 0 && (module.exports = {
122
- LruReader,
123
- close,
124
- init,
125
- readFile,
126
- updateFile
127
- });
@@ -1,57 +1,30 @@
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
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var ssr_exports = {};
29
- __export(ssr_exports, {
30
- render: () => render
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
31
4
  });
32
- module.exports = __toCommonJS(ssr_exports);
33
- var import_path = __toESM(require("path"));
34
- var import_utils = require("@modern-js/utils");
35
- var import_constants = require("@modern-js/utils/constants");
36
- var import_cache = __toESM(require("./cache"));
37
- var import_measure = require("./measure");
38
- var import_utils2 = require("./utils");
5
+ Object.defineProperty(exports, "render", {
6
+ enumerable: true,
7
+ get: () => render
8
+ });
9
+ const _path = /* @__PURE__ */ _interop_require_default(require("path"));
10
+ const _utils = require("@modern-js/utils");
11
+ const _constants = require("@modern-js/utils/constants");
12
+ const _cache = /* @__PURE__ */ _interop_require_default(require("./cache"));
13
+ const _measure = require("./measure");
14
+ const _utils1 = require("./utils");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
39
20
  const render = async (ctx, renderOptions, runner) => {
40
- var _a;
41
- const {
42
- urlPath,
43
- bundle,
44
- distDir,
45
- template,
46
- entryName,
47
- staticGenerate,
48
- enableUnsafeCtx = false
49
- } = renderOptions;
50
- const bundleJS = import_path.default.join(distDir, bundle);
51
- const loadableUri = import_path.default.join(distDir, import_constants.LOADABLE_STATS_FILE);
52
- const loadableStats = import_utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
53
- const routesManifestUri = import_path.default.join(distDir, import_constants.ROUTE_MANIFEST_FILE);
54
- const routeManifest = import_utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
21
+ var _ctx_res;
22
+ const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
23
+ const bundleJS = _path.default.join(distDir, bundle);
24
+ const loadableUri = _path.default.join(distDir, _constants.LOADABLE_STATS_FILE);
25
+ const loadableStats = _utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
26
+ const routesManifestUri = _path.default.join(distDir, _constants.ROUTE_MANIFEST_FILE);
27
+ const routeManifest = _utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
55
28
  const context = {
56
29
  request: {
57
30
  baseUrl: urlPath,
@@ -69,13 +42,12 @@ const render = async (ctx, renderOptions, runner) => {
69
42
  status: (code) => {
70
43
  ctx.res.statusCode = code;
71
44
  },
72
- locals: ((_a = ctx.res) == null ? void 0 : _a.locals) || {}
45
+ locals: ((_ctx_res = ctx.res) === null || _ctx_res === void 0 ? void 0 : _ctx_res.locals) || {}
73
46
  },
74
47
  redirection: {},
75
48
  template,
76
49
  loadableStats,
77
50
  routeManifest,
78
- // for streaming ssr
79
51
  entryName,
80
52
  staticGenerate,
81
53
  logger: void 0,
@@ -84,11 +56,11 @@ const render = async (ctx, renderOptions, runner) => {
84
56
  res: ctx.res,
85
57
  enableUnsafeCtx
86
58
  };
87
- context.logger = (0, import_measure.createLogger)(context, ctx.logger);
88
- context.metrics = (0, import_measure.createMetrics)(context, ctx.metrics);
59
+ context.logger = (0, _measure.createLogger)(context, ctx.logger);
60
+ context.metrics = (0, _measure.createMetrics)(context, ctx.metrics);
89
61
  runner.extendSSRContext(context);
90
- const serverRender = require(bundleJS)[import_constants.SERVER_RENDER_FUNCTION_NAME];
91
- const content = await (0, import_cache.default)(serverRender, ctx)(context);
62
+ const serverRender = require(bundleJS)[_constants.SERVER_RENDER_FUNCTION_NAME];
63
+ const content = await (0, _cache.default)(serverRender, ctx)(context);
92
64
  const { url, status = 302 } = context.redirection;
93
65
  if (url) {
94
66
  return {
@@ -100,18 +72,14 @@ const render = async (ctx, renderOptions, runner) => {
100
72
  }
101
73
  if (typeof content === "string") {
102
74
  return {
103
- content: (0, import_utils2.injectServerData)(content, ctx),
104
- contentType: import_utils.mime.contentType("html")
75
+ content: (0, _utils1.injectServerData)(content, ctx),
76
+ contentType: _utils.mime.contentType("html")
105
77
  };
106
78
  } else {
107
79
  return {
108
80
  content: "",
109
- contentStream: (0, import_utils2.injectServerDataStream)(content, ctx),
110
- contentType: import_utils.mime.contentType("html")
81
+ contentStream: (0, _utils1.injectServerDataStream)(content, ctx),
82
+ contentType: _utils.mime.contentType("html")
111
83
  };
112
84
  }
113
85
  };
114
- // Annotate the CommonJS export names for ESM import in node:
115
- 0 && (module.exports = {
116
- render
117
- });
@@ -1,54 +1,35 @@
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
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var static_exports = {};
29
- __export(static_exports, {
30
- handleDirectory: () => handleDirectory
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "handleDirectory", {
6
+ enumerable: true,
7
+ get: () => handleDirectory
31
8
  });
32
- module.exports = __toCommonJS(static_exports);
33
- var import_path = __toESM(require("path"));
34
- var import_utils = require("@modern-js/utils");
35
- var import_reader = require("./reader");
9
+ const _path = /* @__PURE__ */ _interop_require_default(require("path"));
10
+ const _utils = require("@modern-js/utils");
11
+ const _reader = require("./reader");
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
36
17
  async function handleDirectory(ctx, entryPath, urlPath) {
37
18
  const { path: pathname } = ctx;
38
- const filepath = import_path.default.join(entryPath, trimLeft(pathname, urlPath));
39
- let content = await (0, import_reader.readFile)(filepath);
40
- let contentType = import_utils.mime.contentType(import_path.default.extname(filepath) || "");
19
+ const filepath = _path.default.join(entryPath, trimLeft(pathname, urlPath));
20
+ let content = await (0, _reader.readFile)(filepath);
21
+ let contentType = _utils.mime.contentType(_path.default.extname(filepath) || "");
41
22
  if (!content) {
42
23
  if (pathname.endsWith("/")) {
43
- content = await (0, import_reader.readFile)(`${filepath}index.html`);
24
+ content = await (0, _reader.readFile)(`${filepath}index.html`);
44
25
  } else if (!pathname.includes(".")) {
45
- content = await (0, import_reader.readFile)(`${filepath}.html`);
26
+ content = await (0, _reader.readFile)(`${filepath}.html`);
46
27
  if (!content) {
47
- content = await (0, import_reader.readFile)(`${filepath}/index.html`);
28
+ content = await (0, _reader.readFile)(`${filepath}/index.html`);
48
29
  }
49
30
  }
50
31
  if (content) {
51
- contentType = import_utils.mime.contentType("html");
32
+ contentType = _utils.mime.contentType("html");
52
33
  }
53
34
  }
54
35
  if (!content) {
@@ -65,7 +46,3 @@ const trimLeft = (str, prefix) => {
65
46
  }
66
47
  return str;
67
48
  };
68
- // Annotate the CommonJS export names for ESM import in node:
69
- 0 && (module.exports = {
70
- handleDirectory
71
- });