@modern-js/server-core 2.48.4 → 2.48.5-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.
- package/dist/cjs/base/adapters/node/bff.js +70 -0
- package/dist/cjs/base/adapters/node/hono.js +63 -0
- package/dist/cjs/base/adapters/node/index.js +54 -0
- package/dist/cjs/base/adapters/node/loadServer.js +56 -0
- package/dist/cjs/base/adapters/node/middlewares/index.js +28 -0
- package/dist/cjs/base/adapters/node/middlewares/mock.js +113 -0
- package/dist/cjs/base/adapters/node/middlewares/serverManifest.js +82 -0
- package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +67 -0
- package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +109 -0
- package/dist/cjs/base/adapters/node/middlewares/templates.js +67 -0
- package/dist/cjs/base/adapters/node/node.js +127 -0
- package/dist/cjs/base/adapters/node/polyfills/index.js +24 -0
- package/dist/cjs/base/adapters/node/polyfills/install.js +72 -0
- package/dist/cjs/base/adapters/node/polyfills/stream.js +153 -0
- package/dist/cjs/base/constants.js +58 -0
- package/dist/cjs/base/index.js +49 -0
- package/dist/cjs/base/middlewares/customServer/base.js +154 -0
- package/dist/cjs/base/middlewares/customServer/context.js +73 -0
- package/dist/cjs/base/middlewares/customServer/index.js +130 -0
- package/dist/cjs/base/middlewares/customServer/routerApi.js +44 -0
- package/dist/cjs/base/middlewares/customServer/template.js +58 -0
- package/dist/cjs/base/middlewares/faviconFallback.js +34 -0
- package/dist/cjs/base/middlewares/frameworkHeader.js +31 -0
- package/dist/cjs/base/middlewares/index.js +30 -0
- package/dist/cjs/base/middlewares/logger.js +77 -0
- package/dist/cjs/base/middlewares/monitor.js +90 -0
- package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +46 -0
- package/dist/cjs/base/middlewares/renderHandler/index.js +106 -0
- package/dist/cjs/base/middlewares/renderHandler/render.js +126 -0
- package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +40 -0
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +197 -0
- package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +208 -0
- package/dist/cjs/base/serverBase.js +203 -0
- package/dist/cjs/base/utils/debug.js +29 -0
- package/dist/cjs/base/utils/entry.js +30 -0
- package/dist/cjs/base/utils/env.js +45 -0
- package/dist/cjs/base/utils/error.js +65 -0
- package/dist/cjs/base/utils/index.js +34 -0
- package/dist/cjs/base/utils/middlewareCollector.js +54 -0
- package/dist/cjs/base/utils/request.js +65 -0
- package/dist/cjs/base/utils/serverConfig.js +70 -0
- package/dist/cjs/base/utils/transformStream.js +61 -0
- package/dist/cjs/base/utils/warmup.js +43 -0
- package/dist/cjs/core/hono.js +16 -0
- package/dist/cjs/core/index.js +22 -0
- package/dist/cjs/{loadPlugins.js → core/loadPlugins.js} +4 -7
- package/dist/cjs/{plugin.js → core/plugin.js} +1 -42
- package/dist/cjs/core/render.js +16 -0
- package/dist/cjs/core/server.js +16 -0
- package/dist/cjs/index.js +6 -4
- package/dist/esm/base/adapters/node/bff.js +128 -0
- package/dist/esm/base/adapters/node/hono.js +83 -0
- package/dist/esm/base/adapters/node/index.js +19 -0
- package/dist/esm/base/adapters/node/loadServer.js +73 -0
- package/dist/esm/base/adapters/node/middlewares/index.js +4 -0
- package/dist/esm/base/adapters/node/middlewares/mock.js +198 -0
- package/dist/esm/base/adapters/node/middlewares/serverManifest.js +132 -0
- package/dist/esm/base/adapters/node/middlewares/serverPublic.js +85 -0
- package/dist/esm/base/adapters/node/middlewares/serverStatic.js +119 -0
- package/dist/esm/base/adapters/node/middlewares/templates.js +114 -0
- package/dist/esm/base/adapters/node/node.js +197 -0
- package/dist/esm/base/adapters/node/polyfills/index.js +2 -0
- package/dist/esm/base/adapters/node/polyfills/install.js +48 -0
- package/dist/esm/base/adapters/node/polyfills/stream.js +316 -0
- package/dist/esm/base/constants.js +31 -0
- package/dist/esm/base/index.js +16 -0
- package/dist/esm/base/middlewares/customServer/base.js +182 -0
- package/dist/esm/base/middlewares/customServer/context.js +68 -0
- package/dist/esm/base/middlewares/customServer/index.js +214 -0
- package/dist/esm/base/middlewares/customServer/routerApi.js +26 -0
- package/dist/esm/base/middlewares/customServer/template.js +47 -0
- package/dist/esm/base/middlewares/faviconFallback.js +28 -0
- package/dist/esm/base/middlewares/frameworkHeader.js +27 -0
- package/dist/esm/base/middlewares/index.js +5 -0
- package/dist/esm/base/middlewares/logger.js +75 -0
- package/dist/esm/base/middlewares/monitor.js +157 -0
- package/dist/esm/base/middlewares/renderHandler/dataHandler.js +45 -0
- package/dist/esm/base/middlewares/renderHandler/index.js +165 -0
- package/dist/esm/base/middlewares/renderHandler/render.js +216 -0
- package/dist/esm/base/middlewares/renderHandler/serverTiming.js +21 -0
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +306 -0
- package/dist/esm/base/middlewares/renderHandler/ssrRender.js +265 -0
- package/dist/esm/base/serverBase.js +383 -0
- package/dist/esm/base/utils/debug.js +5 -0
- package/dist/esm/base/utils/entry.js +6 -0
- package/dist/esm/base/utils/env.js +20 -0
- package/dist/esm/base/utils/error.js +12 -0
- package/dist/esm/base/utils/index.js +7 -0
- package/dist/esm/base/utils/middlewareCollector.js +31 -0
- package/dist/esm/base/utils/request.js +39 -0
- package/dist/esm/base/utils/serverConfig.js +58 -0
- package/dist/esm/base/utils/transformStream.js +90 -0
- package/dist/esm/base/utils/warmup.js +9 -0
- package/dist/esm/core/hono.js +0 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/loadPlugins.js +26 -0
- package/dist/esm/core/plugin.js +59 -0
- package/dist/esm/core/render.js +0 -0
- package/dist/esm/core/server.js +0 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm-node/base/adapters/node/bff.js +46 -0
- package/dist/esm-node/base/adapters/node/hono.js +38 -0
- package/dist/esm-node/base/adapters/node/index.js +19 -0
- package/dist/esm-node/base/adapters/node/loadServer.js +22 -0
- package/dist/esm-node/base/adapters/node/middlewares/index.js +4 -0
- package/dist/esm-node/base/adapters/node/middlewares/mock.js +79 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +48 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +33 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +75 -0
- package/dist/esm-node/base/adapters/node/middlewares/templates.js +32 -0
- package/dist/esm-node/base/adapters/node/node.js +101 -0
- package/dist/esm-node/base/adapters/node/polyfills/index.js +2 -0
- package/dist/esm-node/base/adapters/node/polyfills/install.js +48 -0
- package/dist/esm-node/base/adapters/node/polyfills/stream.js +126 -0
- package/dist/esm-node/base/constants.js +31 -0
- package/dist/esm-node/base/index.js +16 -0
- package/dist/esm-node/base/middlewares/customServer/base.js +130 -0
- package/dist/esm-node/base/middlewares/customServer/context.js +46 -0
- package/dist/esm-node/base/middlewares/customServer/index.js +106 -0
- package/dist/esm-node/base/middlewares/customServer/routerApi.js +20 -0
- package/dist/esm-node/base/middlewares/customServer/template.js +34 -0
- package/dist/esm-node/base/middlewares/faviconFallback.js +10 -0
- package/dist/esm-node/base/middlewares/frameworkHeader.js +7 -0
- package/dist/esm-node/base/middlewares/index.js +5 -0
- package/dist/esm-node/base/middlewares/logger.js +53 -0
- package/dist/esm-node/base/middlewares/monitor.js +63 -0
- package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +22 -0
- package/dist/esm-node/base/middlewares/renderHandler/index.js +71 -0
- package/dist/esm-node/base/middlewares/renderHandler/render.js +102 -0
- package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +16 -0
- package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +162 -0
- package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +173 -0
- package/dist/esm-node/base/serverBase.js +168 -0
- package/dist/esm-node/base/utils/debug.js +5 -0
- package/dist/esm-node/base/utils/entry.js +6 -0
- package/dist/esm-node/base/utils/env.js +20 -0
- package/dist/esm-node/base/utils/error.js +41 -0
- package/dist/esm-node/base/utils/index.js +7 -0
- package/dist/esm-node/base/utils/middlewareCollector.js +29 -0
- package/dist/esm-node/base/utils/request.js +38 -0
- package/dist/esm-node/base/utils/serverConfig.js +34 -0
- package/dist/esm-node/base/utils/transformStream.js +36 -0
- package/dist/esm-node/base/utils/warmup.js +9 -0
- package/dist/esm-node/core/hono.js +0 -0
- package/dist/esm-node/core/index.js +1 -0
- package/dist/{esm → esm-node/core}/loadPlugins.js +4 -7
- package/dist/{esm → esm-node/core}/plugin.js +1 -42
- package/dist/esm-node/core/render.js +0 -0
- package/dist/esm-node/core/server.js +0 -0
- package/dist/esm-node/index.js +5 -0
- package/dist/esm-node/types/config/bff.js +0 -0
- package/dist/esm-node/types/config/dev.js +0 -0
- package/dist/esm-node/types/config/html.js +0 -0
- package/dist/esm-node/types/config/index.js +6 -0
- package/dist/esm-node/types/config/output.js +0 -0
- package/dist/esm-node/types/config/security.js +0 -0
- package/dist/esm-node/types/config/server.js +0 -0
- package/dist/esm-node/types/config/share.js +0 -0
- package/dist/esm-node/types/config/source.js +0 -0
- package/dist/esm-node/types/config/tools.js +0 -0
- package/dist/types/base/adapters/node/bff.d.ts +4 -0
- package/dist/types/base/adapters/node/hono.d.ts +22 -0
- package/dist/types/base/adapters/node/index.d.ts +6 -0
- package/dist/types/base/adapters/node/loadServer.d.ts +3 -0
- package/dist/types/base/adapters/node/middlewares/index.d.ts +4 -0
- package/dist/types/base/adapters/node/middlewares/mock.d.ts +5 -0
- package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +3 -0
- package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +7 -0
- package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +11 -0
- package/dist/types/base/adapters/node/middlewares/templates.d.ts +4 -0
- package/dist/types/base/adapters/node/node.d.ts +13 -0
- package/dist/types/base/adapters/node/polyfills/index.d.ts +2 -0
- package/dist/types/base/adapters/node/polyfills/install.d.ts +1 -0
- package/dist/types/base/adapters/node/polyfills/stream.d.ts +18 -0
- package/dist/types/base/constants.d.ts +24 -0
- package/dist/types/base/index.d.ts +7 -0
- package/dist/types/base/middlewares/customServer/base.d.ts +3 -0
- package/dist/types/base/middlewares/customServer/context.d.ts +7 -0
- package/dist/types/base/middlewares/customServer/index.d.ts +13 -0
- package/dist/types/base/middlewares/customServer/routerApi.d.ts +9 -0
- package/dist/types/base/middlewares/customServer/template.d.ts +11 -0
- package/dist/types/base/middlewares/faviconFallback.d.ts +2 -0
- package/dist/types/base/middlewares/frameworkHeader.d.ts +2 -0
- package/dist/types/base/middlewares/index.d.ts +5 -0
- package/dist/types/base/middlewares/logger.d.ts +2 -0
- package/dist/types/base/middlewares/monitor.d.ts +6 -0
- package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +5 -0
- package/dist/types/base/middlewares/renderHandler/index.d.ts +10 -0
- package/dist/types/base/middlewares/renderHandler/render.d.ts +12 -0
- package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +7 -0
- package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +29 -0
- package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +21 -0
- package/dist/types/base/serverBase.d.ts +52 -0
- package/dist/types/base/utils/debug.d.ts +1 -0
- package/dist/types/base/utils/entry.d.ts +2 -0
- package/dist/types/base/utils/env.d.ts +2 -0
- package/dist/types/base/utils/error.d.ts +1 -0
- package/dist/types/base/utils/index.d.ts +7 -0
- package/dist/types/base/utils/middlewareCollector.d.ts +12 -0
- package/dist/types/base/utils/request.d.ts +12 -0
- package/dist/types/base/utils/serverConfig.d.ts +14 -0
- package/dist/types/base/utils/transformStream.d.ts +5 -0
- package/dist/types/base/utils/warmup.d.ts +1 -0
- package/dist/types/core/hono.d.ts +1 -0
- package/dist/types/core/index.d.ts +1 -0
- package/dist/types/core/loadPlugins.d.ts +3 -0
- package/dist/types/core/plugin.d.ts +202 -0
- package/dist/types/core/render.d.ts +15 -0
- package/dist/types/core/server.d.ts +94 -0
- package/dist/types/index.d.ts +3 -2
- package/package.json +39 -1
- package/dist/types/loadPlugins.d.ts +0 -5
- package/dist/types/plugin.d.ts +0 -493
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const getRuntimeEnv = () => {
|
|
2
|
+
var _globalThis_process_release, _globalThis_process, _globalThis;
|
|
3
|
+
if (((_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : (_globalThis_process = _globalThis.process) === null || _globalThis_process === void 0 ? void 0 : (_globalThis_process_release = _globalThis_process.release) === null || _globalThis_process_release === void 0 ? void 0 : _globalThis_process_release.name) === "node") {
|
|
4
|
+
return "node";
|
|
5
|
+
}
|
|
6
|
+
return "other";
|
|
7
|
+
};
|
|
8
|
+
const checkIsProd = () => {
|
|
9
|
+
const env = getRuntimeEnv();
|
|
10
|
+
switch (env) {
|
|
11
|
+
case "node":
|
|
12
|
+
return process.env.NODE_ENV === "production";
|
|
13
|
+
default:
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
checkIsProd,
|
|
19
|
+
getRuntimeEnv
|
|
20
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const ERROR_PAGE_TEXT = {
|
|
2
|
+
404: "This page could not be found.",
|
|
3
|
+
500: "Internal Server Error."
|
|
4
|
+
};
|
|
5
|
+
const createErrorHtml = (status) => {
|
|
6
|
+
const text = ERROR_PAGE_TEXT[status] || "";
|
|
7
|
+
const title = `${status}: ${text}`;
|
|
8
|
+
return `<!DOCTYPE html>
|
|
9
|
+
<html lang="en">
|
|
10
|
+
<head>
|
|
11
|
+
<meta charset="utf-8">
|
|
12
|
+
<meta name="viewport" content="width=device-width">
|
|
13
|
+
<title>${title}</title>
|
|
14
|
+
<style>
|
|
15
|
+
html,body {
|
|
16
|
+
margin: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.page-container {
|
|
20
|
+
color: #000;
|
|
21
|
+
background: #fff;
|
|
22
|
+
height: 100vh;
|
|
23
|
+
text-align: center;
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
30
|
+
</head>
|
|
31
|
+
<body>
|
|
32
|
+
<div class="page-container">
|
|
33
|
+
<h1>${status}</h1>
|
|
34
|
+
<div>${text}</div>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
37
|
+
`;
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
createErrorHtml
|
|
41
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const mergeExtension = (users) => {
|
|
2
|
+
const output = [];
|
|
3
|
+
return {
|
|
4
|
+
middleware: output.concat(users)
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
const createMiddlewareCollecter = () => {
|
|
8
|
+
const webMiddlewares = [];
|
|
9
|
+
const apiMiddlewares = [];
|
|
10
|
+
const addWebMiddleware = (input) => {
|
|
11
|
+
webMiddlewares.push(input);
|
|
12
|
+
};
|
|
13
|
+
const addAPIMiddleware = (input) => {
|
|
14
|
+
apiMiddlewares.push(input);
|
|
15
|
+
};
|
|
16
|
+
const getMiddlewares = () => ({
|
|
17
|
+
web: webMiddlewares,
|
|
18
|
+
api: apiMiddlewares
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
getMiddlewares,
|
|
22
|
+
addWebMiddleware,
|
|
23
|
+
addAPIMiddleware
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
createMiddlewareCollecter,
|
|
28
|
+
mergeExtension
|
|
29
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function parseQuery(request) {
|
|
2
|
+
const { url } = request;
|
|
3
|
+
const q = url.split("?")[1];
|
|
4
|
+
const query = {};
|
|
5
|
+
if (q) {
|
|
6
|
+
q.split("&").forEach((item) => {
|
|
7
|
+
const [key, value] = item.split("=");
|
|
8
|
+
query[key] = value;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return query;
|
|
12
|
+
}
|
|
13
|
+
function parseHeaders(request) {
|
|
14
|
+
const headersData = {};
|
|
15
|
+
request.headers.forEach((value, key) => {
|
|
16
|
+
headersData[key] = value;
|
|
17
|
+
});
|
|
18
|
+
return headersData;
|
|
19
|
+
}
|
|
20
|
+
function getPathname(request) {
|
|
21
|
+
const match = request.url.match(/^https?:\/\/[^/]+(\/[^?]*)/);
|
|
22
|
+
return match ? match[1] : "/";
|
|
23
|
+
}
|
|
24
|
+
function getHost(request) {
|
|
25
|
+
const { headers } = request;
|
|
26
|
+
let host = headers.get("X-Forwarded-Host");
|
|
27
|
+
if (!host) {
|
|
28
|
+
host = headers.get("Host");
|
|
29
|
+
}
|
|
30
|
+
host = (host === null || host === void 0 ? void 0 : host.split(/\s*,\s*/, 1)[0]) || "undefined";
|
|
31
|
+
return host;
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
getHost,
|
|
35
|
+
getPathname,
|
|
36
|
+
parseHeaders,
|
|
37
|
+
parseQuery
|
|
38
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { compatRequire, fs, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
|
|
2
|
+
import mergeDeep from "merge-deep";
|
|
3
|
+
const getServerConfigPath = async (distDirectory, serverConfigFile = DEFAULT_SERVER_CONFIG) => {
|
|
4
|
+
const path = await import("path");
|
|
5
|
+
const serverConfigPath = path.join(distDirectory, serverConfigFile);
|
|
6
|
+
return `${serverConfigPath}.js`;
|
|
7
|
+
};
|
|
8
|
+
const requireConfig = (serverConfigPath) => {
|
|
9
|
+
if (fs.pathExistsSync(serverConfigPath)) {
|
|
10
|
+
return compatRequire(serverConfigPath);
|
|
11
|
+
}
|
|
12
|
+
return {};
|
|
13
|
+
};
|
|
14
|
+
const loadConfig = ({ cliConfig, serverConfig, resolvedConfigPath }) => {
|
|
15
|
+
let config = null;
|
|
16
|
+
if (process.env.NODE_ENV === "production") {
|
|
17
|
+
const resolvedConfig = requireConfig(resolvedConfigPath);
|
|
18
|
+
config = mergeDeep({
|
|
19
|
+
...resolvedConfig,
|
|
20
|
+
plugins: []
|
|
21
|
+
}, serverConfig, cliConfig);
|
|
22
|
+
} else {
|
|
23
|
+
config = mergeDeep({
|
|
24
|
+
...cliConfig,
|
|
25
|
+
plugins: []
|
|
26
|
+
}, serverConfig);
|
|
27
|
+
}
|
|
28
|
+
return config;
|
|
29
|
+
};
|
|
30
|
+
export {
|
|
31
|
+
getServerConfigPath,
|
|
32
|
+
loadConfig,
|
|
33
|
+
requireConfig
|
|
34
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
function createTransformStream(fn) {
|
|
2
|
+
const decoder = new TextDecoder();
|
|
3
|
+
const encoder = new TextEncoder();
|
|
4
|
+
return new TransformStream({
|
|
5
|
+
async transform(chunk, controller) {
|
|
6
|
+
const content = decoder.decode(chunk);
|
|
7
|
+
const newContent = await fn(content);
|
|
8
|
+
controller.enqueue(encoder.encode(newContent));
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function transformResponse(response, transformCb) {
|
|
13
|
+
let readable = null;
|
|
14
|
+
if (response.body) {
|
|
15
|
+
const stream = createTransformStream(async (before) => {
|
|
16
|
+
if (Array.isArray(transformCb)) {
|
|
17
|
+
return transformCb.reduce(async (before2, cb) => {
|
|
18
|
+
return cb(await before2);
|
|
19
|
+
}, Promise.resolve(before));
|
|
20
|
+
} else {
|
|
21
|
+
return transformCb(before);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
response.body.pipeThrough(stream);
|
|
25
|
+
readable = stream.readable;
|
|
26
|
+
}
|
|
27
|
+
return new Response(readable, {
|
|
28
|
+
status: response.status,
|
|
29
|
+
headers: response.headers,
|
|
30
|
+
statusText: response.statusText
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
createTransformStream,
|
|
35
|
+
transformResponse
|
|
36
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./plugin";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { compatRequire, getInternalPlugins, tryResolve } from "@modern-js/utils";
|
|
2
|
-
import { createPlugin } from "
|
|
2
|
+
import { createPlugin } from "../core/plugin";
|
|
3
3
|
const resolvePlugin = (p, appDirectory) => {
|
|
4
4
|
const isPluginInstance = typeof p !== "string";
|
|
5
5
|
if (isPluginInstance) {
|
|
@@ -14,12 +14,9 @@ const resolvePlugin = (p, appDirectory) => {
|
|
|
14
14
|
module: createPlugin(pluginInstance.setup, pluginInstance)
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
const loadPlugins = (appDirectory,
|
|
18
|
-
const loadedPlugins = getInternalPlugins(appDirectory,
|
|
19
|
-
return
|
|
20
|
-
...loadedPlugins,
|
|
21
|
-
...configPlugins
|
|
22
|
-
].map((plugin) => {
|
|
17
|
+
const loadPlugins = (appDirectory, internalPlugins) => {
|
|
18
|
+
const loadedPlugins = getInternalPlugins(appDirectory, internalPlugins);
|
|
19
|
+
return loadedPlugins.map((plugin) => {
|
|
23
20
|
const { module } = resolvePlugin(plugin, appDirectory);
|
|
24
21
|
return module;
|
|
25
22
|
});
|
|
@@ -2,34 +2,14 @@ import { createContext, createAsyncManager, createAsyncPipeline, createAsyncWate
|
|
|
2
2
|
const gather = createParallelWorkflow();
|
|
3
3
|
const config = createWaterfall();
|
|
4
4
|
const prepare = createWaterfall();
|
|
5
|
-
const prepareLoaderHandler = createAsyncPipeline();
|
|
6
5
|
const prepareWebServer = createAsyncPipeline();
|
|
7
6
|
const prepareApiServer = createAsyncPipeline();
|
|
8
|
-
const onApiChange =
|
|
7
|
+
const onApiChange = createAsyncWaterfall();
|
|
9
8
|
const repack = createWaterfall();
|
|
10
9
|
const beforeServerInit = createAsyncWaterfall();
|
|
11
|
-
const afterServerInit = createAsyncWaterfall();
|
|
12
|
-
const setupCompiler = createParallelWorkflow();
|
|
13
|
-
const beforeRouteSet = createAsyncPipeline();
|
|
14
|
-
const afterRouteSet = createAsyncPipeline();
|
|
15
|
-
const beforeProdServer = createParallelWorkflow();
|
|
16
|
-
const afterProdServer = createParallelWorkflow();
|
|
17
|
-
const listen = createParallelWorkflow();
|
|
18
|
-
const beforeServerReset = createParallelWorkflow();
|
|
19
|
-
const afterServerReset = createParallelWorkflow();
|
|
20
|
-
const extendSSRContext = createAsyncWaterfall();
|
|
21
|
-
const extendContext = createAsyncPipeline();
|
|
22
|
-
const handleError = createParallelWorkflow();
|
|
23
|
-
const handleSSRFallback = createParallelWorkflow();
|
|
24
|
-
const beforeMatch = createAsyncPipeline();
|
|
25
10
|
const afterMatch = createAsyncPipeline();
|
|
26
|
-
const prefetch = createParallelWorkflow();
|
|
27
|
-
const renderToString = createAsyncPipeline();
|
|
28
|
-
const beforeRender = createAsyncPipeline();
|
|
29
11
|
const afterRender = createAsyncPipeline();
|
|
30
12
|
const afterStreamingRender = createAsyncPipeline();
|
|
31
|
-
const beforeSend = createAsyncPipeline();
|
|
32
|
-
const afterSend = createParallelWorkflow();
|
|
33
13
|
const reset = createParallelWorkflow();
|
|
34
14
|
const AppContext = createContext({});
|
|
35
15
|
const setAppContext = (value) => AppContext.set(value);
|
|
@@ -46,35 +26,14 @@ const serverHooks = {
|
|
|
46
26
|
gather,
|
|
47
27
|
config,
|
|
48
28
|
prepare,
|
|
49
|
-
prepareLoaderHandler,
|
|
50
29
|
prepareWebServer,
|
|
51
30
|
prepareApiServer,
|
|
52
31
|
repack,
|
|
53
32
|
onApiChange,
|
|
54
33
|
beforeServerInit,
|
|
55
|
-
afterServerInit,
|
|
56
|
-
setupCompiler,
|
|
57
|
-
beforeRouteSet,
|
|
58
|
-
afterRouteSet,
|
|
59
|
-
beforeProdServer,
|
|
60
|
-
afterProdServer,
|
|
61
|
-
listen,
|
|
62
|
-
beforeServerReset,
|
|
63
|
-
afterServerReset,
|
|
64
|
-
// request hook
|
|
65
|
-
extendSSRContext,
|
|
66
|
-
extendContext,
|
|
67
|
-
handleError,
|
|
68
|
-
handleSSRFallback,
|
|
69
|
-
beforeMatch,
|
|
70
34
|
afterMatch,
|
|
71
|
-
prefetch,
|
|
72
|
-
renderToString,
|
|
73
|
-
beforeRender,
|
|
74
35
|
afterRender,
|
|
75
36
|
afterStreamingRender,
|
|
76
|
-
beforeSend,
|
|
77
|
-
afterSend,
|
|
78
37
|
reset
|
|
79
38
|
};
|
|
80
39
|
const createServerManager = () => createAsyncManager(serverHooks, pluginAPI);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ServerBaseOptions } from '../../../core/server';
|
|
2
|
+
import { BindRenderHandleOptions } from '../../../base/middlewares';
|
|
3
|
+
import { ServerBase } from '../../serverBase';
|
|
4
|
+
export declare const bindBFFHandler: (server: ServerBase, options: ServerBaseOptions & BindRenderHandleOptions) => Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NodeRequest, NodeResponse } from '../../../core/plugin';
|
|
2
|
+
import { HonoContext, HonoRequest, ServerEnv, Middleware, Next, ServerManifest } from '../../../core/server';
|
|
3
|
+
type NodeBindings = {
|
|
4
|
+
node: {
|
|
5
|
+
req: NodeRequest & {
|
|
6
|
+
__honoRequest: HonoRequest;
|
|
7
|
+
__templates: Record<string, string>;
|
|
8
|
+
__serverManifest: ServerManifest;
|
|
9
|
+
};
|
|
10
|
+
res: NodeResponse;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type ServerNodeEnv = {
|
|
14
|
+
Bindings: NodeBindings;
|
|
15
|
+
};
|
|
16
|
+
export type ServerNodeMiddleware = Middleware<ServerNodeEnv>;
|
|
17
|
+
export type ServerNodeContext = HonoContext<ServerNodeEnv>;
|
|
18
|
+
type Handler = (req: NodeRequest, res: NodeResponse) => void | Promise<void>;
|
|
19
|
+
export declare const httpCallBack2HonoMid: (handler: Handler) => (context: HonoContext<ServerNodeEnv & ServerEnv>, next: Next) => Promise<void>;
|
|
20
|
+
type ConnectMiddleware = ((req: NodeRequest, res: NodeResponse, callback: (...args: unknown[]) => void) => void) | ((req: NodeRequest, res: NodeResponse) => void);
|
|
21
|
+
export declare const connectMid2HonoMid: (handler: ConnectMiddleware) => Middleware;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { loadServerEnv } from './loadServer';
|
|
2
|
+
export { httpCallBack2HonoMid, connectMid2HonoMid } from './hono';
|
|
3
|
+
export type { ServerNodeContext, ServerNodeMiddleware } from './hono';
|
|
4
|
+
export { createNodeServer, sendResponse, createWebRequest } from './node';
|
|
5
|
+
export { bindBFFHandler } from './bff';
|
|
6
|
+
export { createStaticMiddleware, registerMockHandlers, injectServerManifest, injectTemplates, getHtmlTemplates, } from './middlewares';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { Middleware } from '../../../../core/server';
|
|
3
|
+
export type PublicMiddlwareOptions = {
|
|
4
|
+
pwd: string;
|
|
5
|
+
routes: ServerRoute[];
|
|
6
|
+
};
|
|
7
|
+
export declare function createPublicMiddleware({ pwd, routes, }: PublicMiddlwareOptions): Middleware;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '../../../../types/config';
|
|
3
|
+
import { Middleware } from '../../../../core/server';
|
|
4
|
+
interface ServerStaticOptions {
|
|
5
|
+
pwd: string;
|
|
6
|
+
output: OutputNormalizedConfig;
|
|
7
|
+
html: HtmlNormalizedConfig;
|
|
8
|
+
routes?: ServerRoute[];
|
|
9
|
+
}
|
|
10
|
+
export declare function createStaticMiddleware(options: ServerStaticOptions): Middleware;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { HonoMiddleware, ServerEnv } from '../../../../core/server';
|
|
3
|
+
export declare function getHtmlTemplates(pwd: string, routes: ServerRoute[]): Promise<Record<string, string>>;
|
|
4
|
+
export declare function injectTemplates(pwd: string, routes?: ServerRoute[]): HonoMiddleware<ServerEnv>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Server as NodeServer } from 'node:http';
|
|
3
|
+
import { NodeRequest, NodeResponse } from '../../../core/plugin';
|
|
4
|
+
import { RequestHandler } from '../../../core/server';
|
|
5
|
+
export declare const createWebRequest: (req: NodeRequest, res: NodeResponse) => Request;
|
|
6
|
+
export declare const sendResponse: (response: Response, res: NodeResponse) => Promise<void>;
|
|
7
|
+
declare const getRequestListener: (handler: RequestHandler) => (req: NodeRequest, res: NodeResponse) => Promise<void>;
|
|
8
|
+
type NodeServerWrapper = NodeServer & {
|
|
9
|
+
getRequestListener: () => ReturnType<typeof getRequestListener>;
|
|
10
|
+
getRequestHandler: () => RequestHandler;
|
|
11
|
+
};
|
|
12
|
+
export declare const createNodeServer: (requestHandler: RequestHandler) => NodeServerWrapper;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const installGlobals: () => void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/**
|
|
4
|
+
* The following code is modified based on
|
|
5
|
+
* https://github.com/remix-run/remix/blob/f7defe0b46c50947f6269d5ab5b6e3fe59339054/packages/remix-node/stream.ts#L3
|
|
6
|
+
*
|
|
7
|
+
* MIT Licensed
|
|
8
|
+
* Author Michael Jackson
|
|
9
|
+
* Copyright 2021 Remix Software Inc.
|
|
10
|
+
* https://github.com/remix-run/remix/blob/f7defe0b46c50947f6269d5ab5b6e3fe59339054/LICENSE.md
|
|
11
|
+
*/
|
|
12
|
+
import type { Readable, Writable } from 'node:stream';
|
|
13
|
+
export declare function writeReadableStreamToWritable(stream: ReadableStream, writable: Writable): Promise<void>;
|
|
14
|
+
export declare function writeAsyncIterableToWritable(iterable: AsyncIterable<Uint8Array>, writable: Writable): Promise<void>;
|
|
15
|
+
export declare function readableStreamToString(stream: ReadableStream<Uint8Array>, encoding?: BufferEncoding): Promise<string>;
|
|
16
|
+
export declare const createReadableStreamFromReadable: (source: Readable & {
|
|
17
|
+
readableHighWaterMark?: number;
|
|
18
|
+
}) => ReadableStream<Uint8Array>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const AGGRED_DIR: {
|
|
2
|
+
mock: string;
|
|
3
|
+
server: string;
|
|
4
|
+
api: string;
|
|
5
|
+
shared: string;
|
|
6
|
+
lambda: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const REPLACE_REG: {
|
|
9
|
+
before: {
|
|
10
|
+
head: string;
|
|
11
|
+
body: string;
|
|
12
|
+
};
|
|
13
|
+
after: {
|
|
14
|
+
head: string;
|
|
15
|
+
body: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare enum ServerReportTimings {
|
|
19
|
+
SERVER_HANDLE_REQUEST = "server-handle-request",
|
|
20
|
+
SERVER_MIDDLEWARE = "server-middleware",
|
|
21
|
+
SERVER_HOOK_AFTER_RENDER = "server-hook-after-render",
|
|
22
|
+
SERVER_HOOK_AFTER_MATCH = "server-hook-after-match"
|
|
23
|
+
}
|
|
24
|
+
export declare const X_RENDER_CACHE = "x-render-cache";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createErrorHtml } from './utils';
|
|
2
|
+
export { AGGRED_DIR } from './constants';
|
|
3
|
+
export { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, processedBy, } from './middlewares';
|
|
4
|
+
export type { BindRenderHandleOptions } from './middlewares';
|
|
5
|
+
export type { ServerBase } from './serverBase';
|
|
6
|
+
export { createServerBase } from './serverBase';
|
|
7
|
+
export type { ServerBaseOptions, Next, Middleware, ServerEnv, ServerManifest, HonoContext, HonoEnv, HonoMiddleware, HonoRequest, } from '../core/server';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AfterMatchContext, AfterRenderContext, MiddlewareContext, AfterStreamingRenderContext, ServerRoute, HookContext } from '@modern-js/types';
|
|
2
|
+
import { HonoContext, ServerEnv } from '../../../core/server';
|
|
3
|
+
import type { ServerNodeEnv } from '../../adapters/node/hono';
|
|
4
|
+
export declare function getAfterMatchCtx(entryName: string, baseHookCtx: HookContext): AfterMatchContext;
|
|
5
|
+
export declare function getAfterRenderCtx(c: HonoContext, baseHookCtx: HookContext, route: Partial<ServerRoute>): Promise<AfterRenderContext>;
|
|
6
|
+
export declare function createCustomMiddlewaresCtx(c: HonoContext<ServerNodeEnv & ServerEnv>, locals: Record<string, any>): MiddlewareContext;
|
|
7
|
+
export declare function createAfterStreamingRenderContext(baseHookCtx: HookContext, route: Partial<ServerRoute>): (chunk: string) => AfterStreamingRenderContext;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { ServerBase } from '../../serverBase';
|
|
3
|
+
import { ServerHookRunner } from '../../../core/plugin';
|
|
4
|
+
import { Middleware, ServerEnv } from '../../../core/server';
|
|
5
|
+
import type { ServerNodeEnv } from '../../adapters/node/hono';
|
|
6
|
+
export declare class CustomServer {
|
|
7
|
+
private runner;
|
|
8
|
+
private serverMiddlewarePromise;
|
|
9
|
+
private serverBase;
|
|
10
|
+
constructor(runner: ServerHookRunner, serverBase: ServerBase, pwd: string);
|
|
11
|
+
getHookMiddleware(entryName: string, routes: ServerRoute[]): Middleware<ServerEnv>;
|
|
12
|
+
getServerMiddleware(): Middleware<ServerNodeEnv & ServerEnv>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class TemplateApi {
|
|
2
|
+
private body;
|
|
3
|
+
constructor(body: string);
|
|
4
|
+
set(content: string): void;
|
|
5
|
+
get(): string;
|
|
6
|
+
prependHead(fragment: string): void;
|
|
7
|
+
appendHead(fragment: string): void;
|
|
8
|
+
prependBody(fragment: string): void;
|
|
9
|
+
appendBody(fragment: string): void;
|
|
10
|
+
private replaceBody;
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Logger, Metrics } from '@modern-js/types';
|
|
2
|
+
import type { HonoContext, Next, ServerEnv } from '../../core/server';
|
|
3
|
+
export declare function injectReporter(): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
4
|
+
export declare function initReporter(entryName: string): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
5
|
+
export declare function injectLogger(inputLogger: Logger): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
6
|
+
export declare function injectMetrics(inputMetrics: Metrics): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
@@ -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, reporter, logger, serverManifest, }: SSRRenderOptions & {
|
|
4
|
+
serverRoutes: ServerRoute[];
|
|
5
|
+
}) => Promise<Response | void>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Render } from '../../../core/render';
|
|
2
|
+
import { ServerBaseOptions } from '../../../core/server';
|
|
3
|
+
import { ServerBase } from '../../serverBase';
|
|
4
|
+
export type BindRenderHandleOptions = {
|
|
5
|
+
metaName?: string;
|
|
6
|
+
staticGenerate?: boolean;
|
|
7
|
+
disableCustomHook?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function getRenderHandler(options: ServerBaseOptions & BindRenderHandleOptions): Promise<Render | null>;
|
|
10
|
+
export declare function bindRenderHandler(server: ServerBase, options: ServerBaseOptions & BindRenderHandleOptions): Promise<void>;
|