@modern-js/server-core 2.47.1-alpha.2 → 2.47.1-alpha.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.
- package/dist/cjs/base/adapters/node/middlewares/templates.js +2 -30
- package/dist/cjs/base/index.js +2 -4
- package/dist/cjs/base/middlewares/index.js +0 -2
- package/dist/cjs/base/middlewares/{dataHandler.js → renderHandler/dataHandler.js} +1 -45
- package/dist/cjs/base/middlewares/renderHandler/render.js +1 -1
- package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +1 -1
- package/dist/cjs/base/utils/index.js +3 -1
- package/dist/cjs/base/utils/templates.js +47 -0
- package/dist/esm/base/adapters/node/middlewares/templates.js +1 -19
- package/dist/esm/base/index.js +4 -5
- package/dist/esm/base/middlewares/index.js +0 -1
- package/dist/esm/base/middlewares/renderHandler/dataHandler.js +26 -0
- package/dist/esm/base/middlewares/renderHandler/render.js +1 -1
- package/dist/esm/base/middlewares/renderHandler/ssrRender.js +1 -1
- package/dist/esm/base/utils/index.js +1 -0
- package/dist/esm/base/utils/templates.js +23 -0
- package/dist/types/base/index.d.ts +3 -3
- package/dist/types/base/middlewares/index.d.ts +0 -1
- package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +5 -0
- package/dist/types/base/utils/index.d.ts +1 -0
- package/dist/types/base/utils/templates.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +4 -4
- package/dist/esm/base/middlewares/dataHandler.js +0 -68
- package/dist/types/base/middlewares/dataHandler.d.ts +0 -9
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,43 +15,17 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
var templates_exports = {};
|
|
30
20
|
__export(templates_exports, {
|
|
31
21
|
createInjectHtml: () => createInjectHtml
|
|
32
22
|
});
|
|
33
23
|
module.exports = __toCommonJS(templates_exports);
|
|
34
|
-
var
|
|
35
|
-
var import_fileReader = require("@modern-js/runtime-utils/fileReader");
|
|
36
|
-
async function getHtmlTemplates(pwd, routes) {
|
|
37
|
-
const htmls = await Promise.all(routes.map(async (route) => {
|
|
38
|
-
let html;
|
|
39
|
-
try {
|
|
40
|
-
var _this;
|
|
41
|
-
const htmlPath = import_path.default.join(pwd, route.entryPath);
|
|
42
|
-
html = (_this = await import_fileReader.fileReader.readFile(htmlPath, "utf-8")) === null || _this === void 0 ? void 0 : _this.toString();
|
|
43
|
-
} catch (e) {
|
|
44
|
-
}
|
|
45
|
-
return [
|
|
46
|
-
route.entryName,
|
|
47
|
-
html
|
|
48
|
-
];
|
|
49
|
-
}) || []);
|
|
50
|
-
const templates = Object.fromEntries(htmls);
|
|
51
|
-
return templates;
|
|
52
|
-
}
|
|
24
|
+
var import_templates = require("../../../utils/templates");
|
|
53
25
|
function createInjectHtml(pwd, routes) {
|
|
54
26
|
return async (c, next) => {
|
|
55
27
|
if (!c.get("templates") && routes) {
|
|
56
|
-
const templates = await getHtmlTemplates(pwd, routes);
|
|
28
|
+
const templates = await (0, import_templates.getHtmlTemplates)(pwd, routes);
|
|
57
29
|
c.set("templates", templates);
|
|
58
30
|
}
|
|
59
31
|
return next();
|
package/dist/cjs/base/index.js
CHANGED
|
@@ -20,7 +20,6 @@ var base_exports = {};
|
|
|
20
20
|
__export(base_exports, {
|
|
21
21
|
AGGRED_DIR: () => import_constants.AGGRED_DIR,
|
|
22
22
|
bindBFFHandler: () => import_node.bindBFFHandler,
|
|
23
|
-
bindDataHandlers: () => import_middlewares.bindDataHandlers,
|
|
24
23
|
bindRenderHandler: () => import_middlewares.bindRenderHandler,
|
|
25
24
|
connectMid2HonoMid: () => import_node.connectMid2HonoMid,
|
|
26
25
|
createErrorHtml: () => import_utils.createErrorHtml,
|
|
@@ -28,8 +27,8 @@ __export(base_exports, {
|
|
|
28
27
|
createNodeServer: () => import_node.createNodeServer,
|
|
29
28
|
createServerBase: () => createServerBase,
|
|
30
29
|
createStaticMiddleware: () => import_node.createStaticMiddleware,
|
|
31
|
-
createWebRequest: () => import_node.createWebRequest,
|
|
32
30
|
favionFallbackMiddleware: () => import_middlewares.favionFallbackMiddleware,
|
|
31
|
+
getHtmlTemplates: () => import_utils.getHtmlTemplates,
|
|
33
32
|
getRenderHandler: () => import_middlewares.getRenderHandler,
|
|
34
33
|
httpCallBack2HonoMid: () => import_node.httpCallBack2HonoMid,
|
|
35
34
|
injectLogger: () => import_middlewares.injectLogger,
|
|
@@ -55,7 +54,6 @@ function createServerBase(options) {
|
|
|
55
54
|
0 && (module.exports = {
|
|
56
55
|
AGGRED_DIR,
|
|
57
56
|
bindBFFHandler,
|
|
58
|
-
bindDataHandlers,
|
|
59
57
|
bindRenderHandler,
|
|
60
58
|
connectMid2HonoMid,
|
|
61
59
|
createErrorHtml,
|
|
@@ -63,8 +61,8 @@ function createServerBase(options) {
|
|
|
63
61
|
createNodeServer,
|
|
64
62
|
createServerBase,
|
|
65
63
|
createStaticMiddleware,
|
|
66
|
-
createWebRequest,
|
|
67
64
|
favionFallbackMiddleware,
|
|
65
|
+
getHtmlTemplates,
|
|
68
66
|
getRenderHandler,
|
|
69
67
|
httpCallBack2HonoMid,
|
|
70
68
|
injectLogger,
|
|
@@ -16,13 +16,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
16
16
|
var middlewares_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(middlewares_exports);
|
|
18
18
|
__reExport(middlewares_exports, require("./faviconFallback"), module.exports);
|
|
19
|
-
__reExport(middlewares_exports, require("./dataHandler"), module.exports);
|
|
20
19
|
__reExport(middlewares_exports, require("./monitor"), module.exports);
|
|
21
20
|
__reExport(middlewares_exports, require("./renderHandler"), module.exports);
|
|
22
21
|
// Annotate the CommonJS export names for ESM import in node:
|
|
23
22
|
0 && (module.exports = {
|
|
24
23
|
...require("./faviconFallback"),
|
|
25
|
-
...require("./dataHandler"),
|
|
26
24
|
...require("./monitor"),
|
|
27
25
|
...require("./renderHandler")
|
|
28
26
|
});
|
|
@@ -28,53 +28,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var dataHandler_exports = {};
|
|
30
30
|
__export(dataHandler_exports, {
|
|
31
|
-
bindDataHandlers: () => bindDataHandlers,
|
|
32
|
-
createDataHandlers: () => createDataHandlers,
|
|
33
31
|
dataHandler: () => dataHandler
|
|
34
32
|
});
|
|
35
33
|
module.exports = __toCommonJS(dataHandler_exports);
|
|
36
34
|
var import_utils = require("@modern-js/utils");
|
|
37
|
-
var import_utils2 = require("
|
|
38
|
-
const bindDataHandlers = async (server, routes, distDir) => {
|
|
39
|
-
const path = await (0, import_utils2.getPathModule)();
|
|
40
|
-
routes.sort(import_utils2.sortRoutes).forEach((route) => {
|
|
41
|
-
const bundlePath = path.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${route.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
42
|
-
server.all(`${route.urlPath === "/" ? "*" : `${route.urlPath}/*`}`, createDataHandler(routes, bundlePath));
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
const createDataHandlers = async (routes, distDir) => {
|
|
46
|
-
const path = await (0, import_utils2.getPathModule)();
|
|
47
|
-
const handlers = /* @__PURE__ */ new Map();
|
|
48
|
-
routes.forEach((route) => {
|
|
49
|
-
const bundlePath = path.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${route.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
50
|
-
const dataHandler2 = createDataHandler(routes, bundlePath);
|
|
51
|
-
handlers.set(`${route.entryName || import_utils.MAIN_ENTRY_NAME}`, dataHandler2);
|
|
52
|
-
});
|
|
53
|
-
return handlers;
|
|
54
|
-
};
|
|
55
|
-
const createDataHandler = (serverRoutes, buildModulePath) => {
|
|
56
|
-
return async (context, next) => {
|
|
57
|
-
let buildModule;
|
|
58
|
-
try {
|
|
59
|
-
buildModule = await Promise.resolve().then(() => __toESM(require(buildModulePath)));
|
|
60
|
-
} catch (_) {
|
|
61
|
-
return next();
|
|
62
|
-
}
|
|
63
|
-
const { routes, handleRequest } = buildModule;
|
|
64
|
-
const logger = context.get("logger");
|
|
65
|
-
const reporter = context.get("reporter");
|
|
66
|
-
const response = await handleRequest({
|
|
67
|
-
request: context.req.raw,
|
|
68
|
-
serverRoutes,
|
|
69
|
-
context: {
|
|
70
|
-
logger,
|
|
71
|
-
reporter
|
|
72
|
-
},
|
|
73
|
-
routes
|
|
74
|
-
});
|
|
75
|
-
return response ? response : next();
|
|
76
|
-
};
|
|
77
|
-
};
|
|
35
|
+
var import_utils2 = require("../../utils");
|
|
78
36
|
const dataHandler = async (request, { routeInfo, serverRoutes, pwd, reporter, logger }) => {
|
|
79
37
|
const path = await (0, import_utils2.getPathModule)();
|
|
80
38
|
const serverLoaderBundlePath = path.join(pwd, import_utils.SERVER_BUNDLE_DIRECTORY, `${routeInfo.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
@@ -98,7 +56,5 @@ const dataHandler = async (request, { routeInfo, serverRoutes, pwd, reporter, lo
|
|
|
98
56
|
};
|
|
99
57
|
// Annotate the CommonJS export names for ESM import in node:
|
|
100
58
|
0 && (module.exports = {
|
|
101
|
-
bindDataHandlers,
|
|
102
|
-
createDataHandlers,
|
|
103
59
|
dataHandler
|
|
104
60
|
});
|
|
@@ -24,7 +24,7 @@ module.exports = __toCommonJS(render_exports);
|
|
|
24
24
|
var import_utils = require("@modern-js/utils");
|
|
25
25
|
var import_request = require("../../utils/request");
|
|
26
26
|
var import_utils2 = require("../../utils");
|
|
27
|
-
var import_dataHandler = require("
|
|
27
|
+
var import_dataHandler = require("./dataHandler");
|
|
28
28
|
var import_ssrRender = require("./ssrRender");
|
|
29
29
|
async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce }) {
|
|
30
30
|
return async (req, { logger, nodeReq, reporter, tpls }) => {
|
|
@@ -103,7 +103,7 @@ async function ssrRender(request, { routeInfo, pwd, html, staticGenerate, nonce,
|
|
|
103
103
|
serverTiming: new import_serverTiming.ServerTiming(responseProxy.headers, metaName),
|
|
104
104
|
reporter: reporter || defaultReporter,
|
|
105
105
|
/** @deprecated node req */
|
|
106
|
-
req:
|
|
106
|
+
req: nodeReq,
|
|
107
107
|
/** @deprecated node res */
|
|
108
108
|
res: void 0,
|
|
109
109
|
isSpider,
|
|
@@ -25,6 +25,7 @@ __reExport(utils_exports, require("./error"), module.exports);
|
|
|
25
25
|
__reExport(utils_exports, require("./warmup"), module.exports);
|
|
26
26
|
__reExport(utils_exports, require("./entry"), module.exports);
|
|
27
27
|
__reExport(utils_exports, require("./path"), module.exports);
|
|
28
|
+
__reExport(utils_exports, require("./templates"), module.exports);
|
|
28
29
|
// Annotate the CommonJS export names for ESM import in node:
|
|
29
30
|
0 && (module.exports = {
|
|
30
31
|
...require("./env"),
|
|
@@ -36,5 +37,6 @@ __reExport(utils_exports, require("./path"), module.exports);
|
|
|
36
37
|
...require("./error"),
|
|
37
38
|
...require("./warmup"),
|
|
38
39
|
...require("./entry"),
|
|
39
|
-
...require("./path")
|
|
40
|
+
...require("./path"),
|
|
41
|
+
...require("./templates")
|
|
40
42
|
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var templates_exports = {};
|
|
20
|
+
__export(templates_exports, {
|
|
21
|
+
getHtmlTemplates: () => getHtmlTemplates
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(templates_exports);
|
|
24
|
+
var import_fileReader = require("@modern-js/runtime-utils/fileReader");
|
|
25
|
+
var import_path = require("./path");
|
|
26
|
+
async function getHtmlTemplates(pwd, routes) {
|
|
27
|
+
const path = await (0, import_path.getPathModule)();
|
|
28
|
+
const htmls = await Promise.all(routes.map(async (route) => {
|
|
29
|
+
let html;
|
|
30
|
+
try {
|
|
31
|
+
var _this;
|
|
32
|
+
const htmlPath = path.join(pwd, route.entryPath);
|
|
33
|
+
html = (_this = await import_fileReader.fileReader.readFile(htmlPath, "utf-8")) === null || _this === void 0 ? void 0 : _this.toString();
|
|
34
|
+
} catch (e) {
|
|
35
|
+
}
|
|
36
|
+
return [
|
|
37
|
+
route.entryName,
|
|
38
|
+
html
|
|
39
|
+
];
|
|
40
|
+
}) || []);
|
|
41
|
+
const templates = Object.fromEntries(htmls);
|
|
42
|
+
return templates;
|
|
43
|
+
}
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
getHtmlTemplates
|
|
47
|
+
});
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
3
|
-
async function getHtmlTemplates(pwd, routes) {
|
|
4
|
-
const htmls = await Promise.all(routes.map(async (route) => {
|
|
5
|
-
let html;
|
|
6
|
-
try {
|
|
7
|
-
var _this;
|
|
8
|
-
const htmlPath = path.join(pwd, route.entryPath);
|
|
9
|
-
html = (_this = await fileReader.readFile(htmlPath, "utf-8")) === null || _this === void 0 ? void 0 : _this.toString();
|
|
10
|
-
} catch (e) {
|
|
11
|
-
}
|
|
12
|
-
return [
|
|
13
|
-
route.entryName,
|
|
14
|
-
html
|
|
15
|
-
];
|
|
16
|
-
}) || []);
|
|
17
|
-
const templates = Object.fromEntries(htmls);
|
|
18
|
-
return templates;
|
|
19
|
-
}
|
|
1
|
+
import { getHtmlTemplates } from "../../../utils/templates";
|
|
20
2
|
function createInjectHtml(pwd, routes) {
|
|
21
3
|
return async (c, next) => {
|
|
22
4
|
if (!c.get("templates") && routes) {
|
package/dist/esm/base/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ServerBase } from "./serverBase";
|
|
2
|
-
import { createErrorHtml } from "./utils";
|
|
2
|
+
import { createErrorHtml, getHtmlTemplates } from "./utils";
|
|
3
3
|
import { AGGRED_DIR } from "./constants";
|
|
4
|
-
import { httpCallBack2HonoMid, createNodeServer, loadServerEnv, connectMid2HonoMid, sendResponse, createStaticMiddleware, bindBFFHandler, registerMockHandlers, createInjectHtml
|
|
5
|
-
import { favionFallbackMiddleware,
|
|
4
|
+
import { httpCallBack2HonoMid, createNodeServer, loadServerEnv, connectMid2HonoMid, sendResponse, createStaticMiddleware, bindBFFHandler, registerMockHandlers, createInjectHtml } from "./adapters/node";
|
|
5
|
+
import { favionFallbackMiddleware, injectReporter, getRenderHandler, injectLogger, bindRenderHandler } from "./middlewares";
|
|
6
6
|
function createServerBase(options) {
|
|
7
7
|
if (options == null) {
|
|
8
8
|
throw new Error("can not start server without options");
|
|
@@ -13,7 +13,6 @@ function createServerBase(options) {
|
|
|
13
13
|
export {
|
|
14
14
|
AGGRED_DIR,
|
|
15
15
|
bindBFFHandler,
|
|
16
|
-
bindDataHandlers,
|
|
17
16
|
bindRenderHandler,
|
|
18
17
|
connectMid2HonoMid,
|
|
19
18
|
createErrorHtml,
|
|
@@ -21,8 +20,8 @@ export {
|
|
|
21
20
|
createNodeServer,
|
|
22
21
|
createServerBase,
|
|
23
22
|
createStaticMiddleware,
|
|
24
|
-
createWebRequest,
|
|
25
23
|
favionFallbackMiddleware,
|
|
24
|
+
getHtmlTemplates,
|
|
26
25
|
getRenderHandler,
|
|
27
26
|
httpCallBack2HonoMid,
|
|
28
27
|
injectLogger,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
|
|
2
|
+
import { getPathModule } from "../../utils";
|
|
3
|
+
const dataHandler = async (request, { routeInfo, serverRoutes, pwd, reporter, logger }) => {
|
|
4
|
+
const path = await getPathModule();
|
|
5
|
+
const serverLoaderBundlePath = path.join(pwd, SERVER_BUNDLE_DIRECTORY, `${routeInfo.entryName || MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
6
|
+
let serverLoaderModule;
|
|
7
|
+
try {
|
|
8
|
+
serverLoaderModule = await import(serverLoaderBundlePath);
|
|
9
|
+
} catch (_) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const { routes, handleRequest } = serverLoaderModule;
|
|
13
|
+
const response = await handleRequest({
|
|
14
|
+
request,
|
|
15
|
+
serverRoutes,
|
|
16
|
+
context: {
|
|
17
|
+
logger,
|
|
18
|
+
reporter
|
|
19
|
+
},
|
|
20
|
+
routes
|
|
21
|
+
});
|
|
22
|
+
return response;
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
dataHandler
|
|
26
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cutNameByHyphen } from "@modern-js/utils";
|
|
2
2
|
import { parseQuery } from "../../utils/request";
|
|
3
3
|
import { createErrorHtml, sortRoutes } from "../../utils";
|
|
4
|
-
import { dataHandler } from "
|
|
4
|
+
import { dataHandler } from "./dataHandler";
|
|
5
5
|
import { ssrRender } from "./ssrRender";
|
|
6
6
|
async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce }) {
|
|
7
7
|
return async (req, { logger, nodeReq, reporter, tpls }) => {
|
|
@@ -70,7 +70,7 @@ async function ssrRender(request, { routeInfo, pwd, html, staticGenerate, nonce,
|
|
|
70
70
|
serverTiming: new ServerTiming(responseProxy.headers, metaName),
|
|
71
71
|
reporter: reporter || defaultReporter,
|
|
72
72
|
/** @deprecated node req */
|
|
73
|
-
req:
|
|
73
|
+
req: nodeReq,
|
|
74
74
|
/** @deprecated node res */
|
|
75
75
|
res: void 0,
|
|
76
76
|
isSpider,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
2
|
+
import { getPathModule } from "./path";
|
|
3
|
+
async function getHtmlTemplates(pwd, routes) {
|
|
4
|
+
const path = await getPathModule();
|
|
5
|
+
const htmls = await Promise.all(routes.map(async (route) => {
|
|
6
|
+
let html;
|
|
7
|
+
try {
|
|
8
|
+
var _this;
|
|
9
|
+
const htmlPath = path.join(pwd, route.entryPath);
|
|
10
|
+
html = (_this = await fileReader.readFile(htmlPath, "utf-8")) === null || _this === void 0 ? void 0 : _this.toString();
|
|
11
|
+
} catch (e) {
|
|
12
|
+
}
|
|
13
|
+
return [
|
|
14
|
+
route.entryName,
|
|
15
|
+
html
|
|
16
|
+
];
|
|
17
|
+
}) || []);
|
|
18
|
+
const templates = Object.fromEntries(htmls);
|
|
19
|
+
return templates;
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
getHtmlTemplates
|
|
23
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ServerBaseOptions, Next, Middleware, HonoEnv } from '../core/server';
|
|
2
2
|
import { ServerBase } from './serverBase';
|
|
3
|
-
export { createErrorHtml } from './utils';
|
|
3
|
+
export { createErrorHtml, getHtmlTemplates } from './utils';
|
|
4
4
|
export { AGGRED_DIR } from './constants';
|
|
5
|
-
export { httpCallBack2HonoMid, createNodeServer, loadServerEnv, connectMid2HonoMid, sendResponse, createStaticMiddleware, bindBFFHandler, registerMockHandlers, createInjectHtml,
|
|
6
|
-
export { favionFallbackMiddleware,
|
|
5
|
+
export { httpCallBack2HonoMid, createNodeServer, loadServerEnv, connectMid2HonoMid, sendResponse, createStaticMiddleware, bindBFFHandler, registerMockHandlers, createInjectHtml, type ServerNodeContext, type ServerNodeMiddleware, } from './adapters/node';
|
|
6
|
+
export { favionFallbackMiddleware, injectReporter, getRenderHandler, injectLogger, bindRenderHandler, } from './middlewares';
|
|
7
7
|
export type { BindRenderHandleOptions } from './middlewares';
|
|
8
8
|
export declare function createServerBase<E extends HonoEnv>(options: ServerBaseOptions): ServerBase<E>;
|
|
9
9
|
export type { ServerBaseOptions, Next, Middleware, ServerBase };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { SSRRenderOptions } from './ssrRender';
|
|
3
|
+
export declare const dataHandler: (request: Request, { routeInfo, serverRoutes, pwd, reporter, logger, }: SSRRenderOptions & {
|
|
4
|
+
serverRoutes: ServerRoute[];
|
|
5
|
+
}) => Promise<Response | void>;
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.47.1-alpha.
|
|
18
|
+
"version": "2.47.1-alpha.4",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"hono": "^3.12.2",
|
|
55
55
|
"isbot": "3.8.0",
|
|
56
56
|
"merge-deep": "^3.0.3",
|
|
57
|
+
"@modern-js/plugin": "2.47.0",
|
|
57
58
|
"@modern-js/utils": "2.47.0",
|
|
58
|
-
"@modern-js/runtime-utils": "2.47.0"
|
|
59
|
-
"@modern-js/plugin": "2.47.0"
|
|
59
|
+
"@modern-js/runtime-utils": "2.47.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/jest": "^29",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"jest": "^29",
|
|
67
67
|
"ts-jest": "^29.1.0",
|
|
68
68
|
"typescript": "^5",
|
|
69
|
-
"@modern-js/types": "2.47.0",
|
|
70
69
|
"@scripts/build": "2.47.0",
|
|
70
|
+
"@modern-js/types": "2.47.0",
|
|
71
71
|
"@scripts/jest-config": "2.47.0"
|
|
72
72
|
},
|
|
73
73
|
"sideEffects": false,
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
|
|
2
|
-
import { getPathModule, sortRoutes } from "../utils";
|
|
3
|
-
const bindDataHandlers = async (server, routes, distDir) => {
|
|
4
|
-
const path = await getPathModule();
|
|
5
|
-
routes.sort(sortRoutes).forEach((route) => {
|
|
6
|
-
const bundlePath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, `${route.entryName || MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
7
|
-
server.all(`${route.urlPath === "/" ? "*" : `${route.urlPath}/*`}`, createDataHandler(routes, bundlePath));
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
const createDataHandlers = async (routes, distDir) => {
|
|
11
|
-
const path = await getPathModule();
|
|
12
|
-
const handlers = /* @__PURE__ */ new Map();
|
|
13
|
-
routes.forEach((route) => {
|
|
14
|
-
const bundlePath = path.join(distDir, SERVER_BUNDLE_DIRECTORY, `${route.entryName || MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
15
|
-
const dataHandler2 = createDataHandler(routes, bundlePath);
|
|
16
|
-
handlers.set(`${route.entryName || MAIN_ENTRY_NAME}`, dataHandler2);
|
|
17
|
-
});
|
|
18
|
-
return handlers;
|
|
19
|
-
};
|
|
20
|
-
const createDataHandler = (serverRoutes, buildModulePath) => {
|
|
21
|
-
return async (context, next) => {
|
|
22
|
-
let buildModule;
|
|
23
|
-
try {
|
|
24
|
-
buildModule = await import(buildModulePath);
|
|
25
|
-
} catch (_) {
|
|
26
|
-
return next();
|
|
27
|
-
}
|
|
28
|
-
const { routes, handleRequest } = buildModule;
|
|
29
|
-
const logger = context.get("logger");
|
|
30
|
-
const reporter = context.get("reporter");
|
|
31
|
-
const response = await handleRequest({
|
|
32
|
-
request: context.req.raw,
|
|
33
|
-
serverRoutes,
|
|
34
|
-
context: {
|
|
35
|
-
logger,
|
|
36
|
-
reporter
|
|
37
|
-
},
|
|
38
|
-
routes
|
|
39
|
-
});
|
|
40
|
-
return response ? response : next();
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
const dataHandler = async (request, { routeInfo, serverRoutes, pwd, reporter, logger }) => {
|
|
44
|
-
const path = await getPathModule();
|
|
45
|
-
const serverLoaderBundlePath = path.join(pwd, SERVER_BUNDLE_DIRECTORY, `${routeInfo.entryName || MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
46
|
-
let serverLoaderModule;
|
|
47
|
-
try {
|
|
48
|
-
serverLoaderModule = await import(serverLoaderBundlePath);
|
|
49
|
-
} catch (_) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const { routes, handleRequest } = serverLoaderModule;
|
|
53
|
-
const response = await handleRequest({
|
|
54
|
-
request,
|
|
55
|
-
serverRoutes,
|
|
56
|
-
context: {
|
|
57
|
-
logger,
|
|
58
|
-
reporter
|
|
59
|
-
},
|
|
60
|
-
routes
|
|
61
|
-
});
|
|
62
|
-
return response;
|
|
63
|
-
};
|
|
64
|
-
export {
|
|
65
|
-
bindDataHandlers,
|
|
66
|
-
createDataHandlers,
|
|
67
|
-
dataHandler
|
|
68
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ServerRoute } from '@modern-js/types';
|
|
2
|
-
import { Middleware } from '../../core/server';
|
|
3
|
-
import type { ServerBase } from '../serverBase';
|
|
4
|
-
import { SSRRenderOptions } from './renderHandler/ssrRender';
|
|
5
|
-
export declare const bindDataHandlers: (server: ServerBase, routes: ServerRoute[], distDir: string) => Promise<void>;
|
|
6
|
-
export declare const createDataHandlers: (routes: ServerRoute[], distDir: string) => Promise<Map<string, Middleware>>;
|
|
7
|
-
export declare const dataHandler: (request: Request, { routeInfo, serverRoutes, pwd, reporter, logger, }: SSRRenderOptions & {
|
|
8
|
-
serverRoutes: ServerRoute[];
|
|
9
|
-
}) => Promise<Response | void>;
|