@modern-js/server-core 2.49.3 → 2.49.4-alpha.1

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.
@@ -47,9 +47,6 @@ function createPublicMiddleware({ pwd, routes }) {
47
47
  if (mimeType) {
48
48
  c.header("Content-Type", mimeType);
49
49
  }
50
- Object.entries(route.responseHeaders || {}).forEach(([k, v]) => {
51
- c.header(k, v);
52
- });
53
50
  return c.body(data, 200);
54
51
  }
55
52
  }
@@ -22,31 +22,13 @@ __export(render_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(render_exports);
24
24
  var import_universal = require("@modern-js/utils/universal");
25
- var import_trie_router = require("hono/router/trie-router");
26
25
  var import_constants = require("../../../base/constants");
27
26
  var import_utils = require("../../utils");
28
27
  var import_dataHandler = require("./dataHandler");
29
28
  var import_ssrRender = require("./ssrRender");
30
- function getRouter(routes) {
31
- const sorted = routes.sort(import_utils.sortRoutes);
32
- const router = new import_trie_router.TrieRouter();
33
- for (const route of sorted) {
34
- const { urlPath: originUrlPath } = route;
35
- const urlPath = originUrlPath.endsWith("/") ? `${originUrlPath}*` : `${originUrlPath}/*`;
36
- router.add("*", urlPath, route);
37
- }
38
- return router;
39
- }
40
- function matchRoute(router, request) {
41
- const pathname = (0, import_utils.getPathname)(request);
42
- const matched = router.match("*", pathname);
43
- const result = matched[0][0];
44
- return result || [];
45
- }
46
29
  async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce, onFallback: onFallbackFn }) {
47
- const router = getRouter(routes);
48
30
  return async (req, { logger, nodeReq, reporter, templates, serverManifest, locals, metrics }) => {
49
- const [routeInfo, params] = matchRoute(router, req);
31
+ const routeInfo = matchRoute(req, routes);
50
32
  const onFallback = async (reason, error) => {
51
33
  return onFallbackFn === null || onFallbackFn === void 0 ? void 0 : onFallbackFn(reason, {
52
34
  logger,
@@ -87,7 +69,6 @@ async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, n
87
69
  nodeReq,
88
70
  reporter,
89
71
  serverRoutes: routes,
90
- params,
91
72
  locals,
92
73
  serverManifest,
93
74
  metrics
@@ -111,7 +92,7 @@ async function renderHandler(request, options, mode, onError) {
111
92
  const serverData = {
112
93
  router: {
113
94
  baseUrl: options.routeInfo.urlPath,
114
- params: options.params
95
+ params: {}
115
96
  }
116
97
  };
117
98
  let response;
@@ -125,15 +106,17 @@ async function renderHandler(request, options, mode, onError) {
125
106
  } else {
126
107
  response = csrRender(options.html);
127
108
  }
128
- const newRes = (0, import_utils.transformResponse)(response, injectServerData(serverData));
129
- const { routeInfo } = options;
130
- applyExtendHeaders(newRes, routeInfo);
131
- return newRes;
132
- function applyExtendHeaders(r, route) {
133
- Object.entries(route.responseHeaders || {}).forEach(([k, v]) => {
134
- r.headers.set(k, v);
135
- });
109
+ return (0, import_utils.transformResponse)(response, injectServerData(serverData));
110
+ }
111
+ function matchRoute(req, routes) {
112
+ const sorted = routes.sort(import_utils.sortRoutes);
113
+ for (const route of sorted) {
114
+ const pathname = (0, import_utils.getPathname)(req);
115
+ if (pathname.startsWith(route.urlPath)) {
116
+ return route;
117
+ }
136
118
  }
119
+ return void 0;
137
120
  }
138
121
  async function getRenderMode(req, framework, isSSR, forceCSR, nodeReq, onFallback) {
139
122
  const query = (0, import_utils.parseQuery)(req);
@@ -49,7 +49,7 @@ const defaultReporter = {
49
49
  reportWarn() {
50
50
  }
51
51
  };
52
- async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics }) {
52
+ async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, metrics }) {
53
53
  var _serverManifest_renderBundles;
54
54
  const { entryName } = routeInfo;
55
55
  const loadableStats = serverManifest.loadableStats || {};
@@ -69,7 +69,7 @@ async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, meta
69
69
  const ssrContext = {
70
70
  request: {
71
71
  baseUrl: routeInfo.urlPath,
72
- params,
72
+ params: {},
73
73
  pathname: nodeReq ? getPathnameFromNodeReq(nodeReq) : (0, import_utils.getPathname)(request),
74
74
  host,
75
75
  query,
@@ -1,5 +1,4 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
3
  import path from "path";
5
4
  import { fileReader } from "@modern-js/runtime-utils/fileReader";
@@ -32,10 +31,6 @@ function createPublicMiddleware(param) {
32
31
  if (mimeType) {
33
32
  c.header("Content-Type", mimeType);
34
33
  }
35
- Object.entries(route.responseHeaders || {}).forEach(function(param2) {
36
- var _param = _sliced_to_array(param2, 2), k = _param[0], v = _param[1];
37
- c.header(k, v);
38
- });
39
34
  return [
40
35
  2,
41
36
  c.body(data, 200)
@@ -1,64 +1,28 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
3
  import { cutNameByHyphen } from "@modern-js/utils/universal";
5
- import { TrieRouter } from "hono/router/trie-router";
6
4
  import { REPLACE_REG } from "../../../base/constants";
7
5
  import { createErrorHtml, sortRoutes, parseQuery, transformResponse, getPathname, onError as onErrorFn, ErrorDigest } from "../../utils";
8
6
  import { dataHandler } from "./dataHandler";
9
7
  import { ssrRender } from "./ssrRender";
10
- function getRouter(routes) {
11
- var sorted = routes.sort(sortRoutes);
12
- var router = new TrieRouter();
13
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14
- try {
15
- for (var _iterator = sorted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
16
- var route = _step.value;
17
- var originUrlPath = route.urlPath;
18
- var urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
19
- router.add("*", urlPath, route);
20
- }
21
- } catch (err) {
22
- _didIteratorError = true;
23
- _iteratorError = err;
24
- } finally {
25
- try {
26
- if (!_iteratorNormalCompletion && _iterator.return != null) {
27
- _iterator.return();
28
- }
29
- } finally {
30
- if (_didIteratorError) {
31
- throw _iteratorError;
32
- }
33
- }
34
- }
35
- return router;
36
- }
37
- function matchRoute(router, request) {
38
- var pathname = getPathname(request);
39
- var matched = router.match("*", pathname);
40
- var result = matched[0][0];
41
- return result || [];
42
- }
43
8
  function createRender(_) {
44
9
  return _createRender.apply(this, arguments);
45
10
  }
46
11
  function _createRender() {
47
12
  _createRender = _async_to_generator(function(param) {
48
- var routes, pwd, metaName, staticGenerate, forceCSR, nonce, onFallbackFn, router;
13
+ var routes, pwd, metaName, staticGenerate, forceCSR, nonce, onFallbackFn;
49
14
  return _ts_generator(this, function(_state) {
50
15
  routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce, onFallbackFn = param.onFallback;
51
- router = getRouter(routes);
52
16
  return [
53
17
  2,
54
18
  function() {
55
19
  var _ref = _async_to_generator(function(req, param2) {
56
- var logger, nodeReq, reporter, templates, serverManifest, locals, metrics, _matchRoute, routeInfo, params, onFallback, html, renderMode, onError, renderOptions, response;
20
+ var logger, nodeReq, reporter, templates, serverManifest, locals, metrics, routeInfo, onFallback, html, renderMode, onError, renderOptions, response;
57
21
  return _ts_generator(this, function(_state2) {
58
22
  switch (_state2.label) {
59
23
  case 0:
60
24
  logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, metrics = param2.metrics;
61
- _matchRoute = _sliced_to_array(matchRoute(router, req), 2), routeInfo = _matchRoute[0], params = _matchRoute[1];
25
+ routeInfo = matchRoute(req, routes);
62
26
  onFallback = function() {
63
27
  var _ref2 = _async_to_generator(function(reason, error) {
64
28
  return _ts_generator(this, function(_state3) {
@@ -138,7 +102,6 @@ function _createRender() {
138
102
  nodeReq,
139
103
  reporter,
140
104
  serverRoutes: routes,
141
- params,
142
105
  locals,
143
106
  serverManifest,
144
107
  metrics
@@ -216,20 +179,14 @@ function renderHandler(request, options, mode, onError) {
216
179
  }
217
180
  function _renderHandler() {
218
181
  _renderHandler = _async_to_generator(function(request, options, mode, onError) {
219
- var serverData, response, e, newRes, routeInfo;
220
- function applyExtendHeaders(r, route) {
221
- Object.entries(route.responseHeaders || {}).forEach(function(param) {
222
- var _param = _sliced_to_array(param, 2), k = _param[0], v = _param[1];
223
- r.headers.set(k, v);
224
- });
225
- }
182
+ var serverData, response, e;
226
183
  return _ts_generator(this, function(_state) {
227
184
  switch (_state.label) {
228
185
  case 0:
229
186
  serverData = {
230
187
  router: {
231
188
  baseUrl: options.routeInfo.urlPath,
232
- params: options.params
189
+ params: {}
233
190
  }
234
191
  };
235
192
  if (!(mode === "ssr"))
@@ -277,18 +234,42 @@ function _renderHandler() {
277
234
  response = csrRender(options.html);
278
235
  _state.label = 7;
279
236
  case 7:
280
- newRes = transformResponse(response, injectServerData(serverData));
281
- routeInfo = options.routeInfo;
282
- applyExtendHeaders(newRes, routeInfo);
283
237
  return [
284
238
  2,
285
- newRes
239
+ transformResponse(response, injectServerData(serverData))
286
240
  ];
287
241
  }
288
242
  });
289
243
  });
290
244
  return _renderHandler.apply(this, arguments);
291
245
  }
246
+ function matchRoute(req, routes) {
247
+ var sorted = routes.sort(sortRoutes);
248
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
249
+ try {
250
+ for (var _iterator = sorted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
251
+ var route = _step.value;
252
+ var pathname = getPathname(req);
253
+ if (pathname.startsWith(route.urlPath)) {
254
+ return route;
255
+ }
256
+ }
257
+ } catch (err) {
258
+ _didIteratorError = true;
259
+ _iteratorError = err;
260
+ } finally {
261
+ try {
262
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
263
+ _iterator.return();
264
+ }
265
+ } finally {
266
+ if (_didIteratorError) {
267
+ throw _iteratorError;
268
+ }
269
+ }
270
+ }
271
+ return void 0;
272
+ }
292
273
  function getRenderMode(req, framework, isSSR, forceCSR, nodeReq, onFallback) {
293
274
  return _getRenderMode.apply(this, arguments);
294
275
  }
@@ -24,11 +24,11 @@ function ssrRender(request, _) {
24
24
  }
25
25
  function _ssrRender() {
26
26
  _ssrRender = _async_to_generator(function(request, param) {
27
- var routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, host, isSpider, responseProxy, query, headers, key, ssrContext, renderBundle, runtimeEnv, ssrResult, cacheStatus, render, cacheModuleName, ssrCache, incomingMessage, cacheControl, _ref, data, status, redirection, headers1, Readable, streamModule, createReadableStreamFromReadable, _tmp, data1;
27
+ var routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, metrics, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, host, isSpider, responseProxy, query, headers, key, ssrContext, renderBundle, runtimeEnv, ssrResult, cacheStatus, render, cacheModuleName, ssrCache, incomingMessage, cacheControl, _ref, data, status, redirection, headers1, Readable, streamModule, createReadableStreamFromReadable, _tmp, data1;
28
28
  return _ts_generator(this, function(_state) {
29
29
  switch (_state.label) {
30
30
  case 0:
31
- routeInfo = param.routeInfo, html = param.html, staticGenerate = param.staticGenerate, nonce = param.nonce, metaName = param.metaName, reporter = param.reporter, logger = param.logger, nodeReq = param.nodeReq, serverManifest = param.serverManifest, locals = param.locals, params = param.params, metrics = param.metrics;
31
+ routeInfo = param.routeInfo, html = param.html, staticGenerate = param.staticGenerate, nonce = param.nonce, metaName = param.metaName, reporter = param.reporter, logger = param.logger, nodeReq = param.nodeReq, serverManifest = param.serverManifest, locals = param.locals, metrics = param.metrics;
32
32
  entryName = routeInfo.entryName;
33
33
  loadableStats = serverManifest.loadableStats || {};
34
34
  routeManifest = serverManifest.routeManifest || {};
@@ -47,7 +47,7 @@ function _ssrRender() {
47
47
  ssrContext = {
48
48
  request: {
49
49
  baseUrl: routeInfo.urlPath,
50
- params,
50
+ params: {},
51
51
  pathname: nodeReq ? getPathnameFromNodeReq(nodeReq) : getPathname(request),
52
52
  host,
53
53
  query,
@@ -14,9 +14,6 @@ function createPublicMiddleware({ pwd, routes }) {
14
14
  if (mimeType) {
15
15
  c.header("Content-Type", mimeType);
16
16
  }
17
- Object.entries(route.responseHeaders || {}).forEach(([k, v]) => {
18
- c.header(k, v);
19
- });
20
17
  return c.body(data, 200);
21
18
  }
22
19
  }
@@ -1,29 +1,11 @@
1
1
  import { cutNameByHyphen } from "@modern-js/utils/universal";
2
- import { TrieRouter } from "hono/router/trie-router";
3
2
  import { REPLACE_REG } from "../../../base/constants";
4
3
  import { createErrorHtml, sortRoutes, parseQuery, transformResponse, getPathname, onError as onErrorFn, ErrorDigest } from "../../utils";
5
4
  import { dataHandler } from "./dataHandler";
6
5
  import { ssrRender } from "./ssrRender";
7
- function getRouter(routes) {
8
- const sorted = routes.sort(sortRoutes);
9
- const router = new TrieRouter();
10
- for (const route of sorted) {
11
- const { urlPath: originUrlPath } = route;
12
- const urlPath = originUrlPath.endsWith("/") ? `${originUrlPath}*` : `${originUrlPath}/*`;
13
- router.add("*", urlPath, route);
14
- }
15
- return router;
16
- }
17
- function matchRoute(router, request) {
18
- const pathname = getPathname(request);
19
- const matched = router.match("*", pathname);
20
- const result = matched[0][0];
21
- return result || [];
22
- }
23
6
  async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce, onFallback: onFallbackFn }) {
24
- const router = getRouter(routes);
25
7
  return async (req, { logger, nodeReq, reporter, templates, serverManifest, locals, metrics }) => {
26
- const [routeInfo, params] = matchRoute(router, req);
8
+ const routeInfo = matchRoute(req, routes);
27
9
  const onFallback = async (reason, error) => {
28
10
  return onFallbackFn === null || onFallbackFn === void 0 ? void 0 : onFallbackFn(reason, {
29
11
  logger,
@@ -64,7 +46,6 @@ async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, n
64
46
  nodeReq,
65
47
  reporter,
66
48
  serverRoutes: routes,
67
- params,
68
49
  locals,
69
50
  serverManifest,
70
51
  metrics
@@ -88,7 +69,7 @@ async function renderHandler(request, options, mode, onError) {
88
69
  const serverData = {
89
70
  router: {
90
71
  baseUrl: options.routeInfo.urlPath,
91
- params: options.params
72
+ params: {}
92
73
  }
93
74
  };
94
75
  let response;
@@ -102,15 +83,17 @@ async function renderHandler(request, options, mode, onError) {
102
83
  } else {
103
84
  response = csrRender(options.html);
104
85
  }
105
- const newRes = transformResponse(response, injectServerData(serverData));
106
- const { routeInfo } = options;
107
- applyExtendHeaders(newRes, routeInfo);
108
- return newRes;
109
- function applyExtendHeaders(r, route) {
110
- Object.entries(route.responseHeaders || {}).forEach(([k, v]) => {
111
- r.headers.set(k, v);
112
- });
86
+ return transformResponse(response, injectServerData(serverData));
87
+ }
88
+ function matchRoute(req, routes) {
89
+ const sorted = routes.sort(sortRoutes);
90
+ for (const route of sorted) {
91
+ const pathname = getPathname(req);
92
+ if (pathname.startsWith(route.urlPath)) {
93
+ return route;
94
+ }
113
95
  }
96
+ return void 0;
114
97
  }
115
98
  async function getRenderMode(req, framework, isSSR, forceCSR, nodeReq, onFallback) {
116
99
  const query = parseQuery(req);
@@ -15,7 +15,7 @@ const defaultReporter = {
15
15
  reportWarn() {
16
16
  }
17
17
  };
18
- async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics }) {
18
+ async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, metrics }) {
19
19
  var _serverManifest_renderBundles;
20
20
  const { entryName } = routeInfo;
21
21
  const loadableStats = serverManifest.loadableStats || {};
@@ -35,7 +35,7 @@ async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, meta
35
35
  const ssrContext = {
36
36
  request: {
37
37
  baseUrl: routeInfo.urlPath,
38
- params,
38
+ params: {},
39
39
  pathname: nodeReq ? getPathnameFromNodeReq(nodeReq) : getPathname(request),
40
40
  host,
41
41
  query,
@@ -2,7 +2,6 @@
2
2
  import type { IncomingMessage } from 'http';
3
3
  import type { Logger, Metrics, Reporter, ServerRoute } from '@modern-js/types';
4
4
  import { ServerManifest } from '../../../core/server';
5
- export type Params = Record<string, any>;
6
5
  export interface SSRRenderOptions {
7
6
  pwd: string;
8
7
  html: string;
@@ -11,7 +10,6 @@ export interface SSRRenderOptions {
11
10
  metaName: string;
12
11
  logger: Logger;
13
12
  serverManifest: ServerManifest;
14
- params: Params;
15
13
  /** Produce by custom server hook */
16
14
  locals?: Record<string, any>;
17
15
  reporter?: Reporter;
@@ -19,5 +17,5 @@ export interface SSRRenderOptions {
19
17
  nodeReq?: IncomingMessage;
20
18
  nonce?: string;
21
19
  }
22
- export declare function ssrRender(request: Request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics, }: SSRRenderOptions): Promise<Response>;
20
+ export declare function ssrRender(request: Request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, metrics, }: SSRRenderOptions): Promise<Response>;
23
21
  export declare function getPathnameFromNodeReq(nodeReq: IncomingMessage): string;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.49.3",
18
+ "version": "2.49.4-alpha.1",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -69,8 +69,8 @@
69
69
  "hono": "^3.12.2",
70
70
  "isbot": "3.8.0",
71
71
  "merge-deep": "^3.0.3",
72
- "@modern-js/utils": "2.49.3",
73
72
  "@modern-js/runtime-utils": "2.49.3",
73
+ "@modern-js/utils": "2.49.3",
74
74
  "@modern-js/plugin": "2.49.3"
75
75
  },
76
76
  "devDependencies": {
@@ -81,9 +81,9 @@
81
81
  "jest": "^29",
82
82
  "ts-jest": "^29.1.0",
83
83
  "typescript": "^5",
84
+ "@scripts/build": "2.49.3",
84
85
  "@modern-js/types": "2.49.3",
85
- "@scripts/jest-config": "2.49.3",
86
- "@scripts/build": "2.49.3"
86
+ "@scripts/jest-config": "2.49.3"
87
87
  },
88
88
  "sideEffects": false,
89
89
  "publishConfig": {