@modern-js/server-core 2.48.6 → 2.49.1-alpha.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.
- 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 +56 -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 +90 -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 +171 -0
- package/dist/cjs/base/middlewares/customServer/context.js +73 -0
- package/dist/cjs/base/middlewares/customServer/index.js +136 -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 +108 -0
- package/dist/cjs/base/middlewares/renderHandler/render.js +132 -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 +212 -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/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 +20 -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 +139 -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 +199 -0
- package/dist/esm/base/middlewares/customServer/context.js +68 -0
- package/dist/esm/base/middlewares/customServer/index.js +220 -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 +167 -0
- package/dist/esm/base/middlewares/renderHandler/render.js +225 -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 +269 -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/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 +20 -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 +55 -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 +147 -0
- package/dist/esm-node/base/middlewares/customServer/context.js +46 -0
- package/dist/esm-node/base/middlewares/customServer/index.js +112 -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 +73 -0
- package/dist/esm-node/base/middlewares/renderHandler/render.js +108 -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 +177 -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/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 +3 -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 +4 -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 +9 -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 +28 -0
- package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +21 -0
- package/dist/types/base/serverBase.d.ts +70 -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/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 +17 -0
- package/dist/types/core/server.d.ts +44 -0
- package/dist/types/index.d.ts +3 -2
- package/package.json +44 -6
- package/dist/types/loadPlugins.d.ts +0 -5
- package/dist/types/plugin.d.ts +0 -493
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { fs, dotenv, dotenvExpand } from "@modern-js/utils";
|
|
5
|
+
function loadServerEnv(options) {
|
|
6
|
+
return _loadServerEnv.apply(this, arguments);
|
|
7
|
+
}
|
|
8
|
+
function _loadServerEnv() {
|
|
9
|
+
_loadServerEnv = _async_to_generator(function(options) {
|
|
10
|
+
var pwd, serverEnv, defaultEnvPath, serverEnvPath, _i, _iter, envPath, _tmp, envConfig;
|
|
11
|
+
return _ts_generator(this, function(_state) {
|
|
12
|
+
switch (_state.label) {
|
|
13
|
+
case 0:
|
|
14
|
+
pwd = options.pwd;
|
|
15
|
+
serverEnv = process.env.MODERN_ENV;
|
|
16
|
+
defaultEnvPath = path.resolve(pwd, ".env");
|
|
17
|
+
serverEnvPath = path.resolve(pwd, ".env.".concat(serverEnv));
|
|
18
|
+
_i = 0, _iter = [
|
|
19
|
+
serverEnvPath,
|
|
20
|
+
defaultEnvPath
|
|
21
|
+
];
|
|
22
|
+
_state.label = 1;
|
|
23
|
+
case 1:
|
|
24
|
+
if (!(_i < _iter.length))
|
|
25
|
+
return [
|
|
26
|
+
3,
|
|
27
|
+
6
|
|
28
|
+
];
|
|
29
|
+
envPath = _iter[_i];
|
|
30
|
+
return [
|
|
31
|
+
4,
|
|
32
|
+
fs.pathExists(envPath)
|
|
33
|
+
];
|
|
34
|
+
case 2:
|
|
35
|
+
_tmp = _state.sent();
|
|
36
|
+
if (!_tmp)
|
|
37
|
+
return [
|
|
38
|
+
3,
|
|
39
|
+
4
|
|
40
|
+
];
|
|
41
|
+
return [
|
|
42
|
+
4,
|
|
43
|
+
fs.stat(envPath)
|
|
44
|
+
];
|
|
45
|
+
case 3:
|
|
46
|
+
_tmp = !_state.sent().isDirectory();
|
|
47
|
+
_state.label = 4;
|
|
48
|
+
case 4:
|
|
49
|
+
if (_tmp) {
|
|
50
|
+
envConfig = dotenv.config({
|
|
51
|
+
path: envPath
|
|
52
|
+
});
|
|
53
|
+
dotenvExpand(envConfig);
|
|
54
|
+
}
|
|
55
|
+
_state.label = 5;
|
|
56
|
+
case 5:
|
|
57
|
+
_i++;
|
|
58
|
+
return [
|
|
59
|
+
3,
|
|
60
|
+
1
|
|
61
|
+
];
|
|
62
|
+
case 6:
|
|
63
|
+
return [
|
|
64
|
+
2
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
return _loadServerEnv.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
loadServerEnv
|
|
73
|
+
};
|
|
@@ -0,0 +1,198 @@
|
|
|
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
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { fs } from "@modern-js/utils";
|
|
6
|
+
import { AGGRED_DIR } from "../../../constants";
|
|
7
|
+
import { connectMid2HonoMid } from "../hono";
|
|
8
|
+
var parseKey = function(key) {
|
|
9
|
+
var _blank = " ";
|
|
10
|
+
var splitted = key.split(_blank).filter(Boolean);
|
|
11
|
+
if (splitted.length > 1) {
|
|
12
|
+
var _splitted = _sliced_to_array(splitted, 2), method = _splitted[0], pathname = _splitted[1];
|
|
13
|
+
return {
|
|
14
|
+
method: method.toLowerCase(),
|
|
15
|
+
path: pathname
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
method: "get",
|
|
20
|
+
path: key
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
var mockHandlerRegistry = /* @__PURE__ */ new Map();
|
|
24
|
+
var registerMockHandlers = function() {
|
|
25
|
+
var _ref = _async_to_generator(function(param) {
|
|
26
|
+
var pwd, server, exts, mockFilePath, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, ext, maybeMatch, err, _ref2, mockModule, config, enable;
|
|
27
|
+
return _ts_generator(this, function(_state) {
|
|
28
|
+
switch (_state.label) {
|
|
29
|
+
case 0:
|
|
30
|
+
pwd = param.pwd, server = param.server;
|
|
31
|
+
exts = [
|
|
32
|
+
".ts",
|
|
33
|
+
".js"
|
|
34
|
+
];
|
|
35
|
+
mockFilePath = "";
|
|
36
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
37
|
+
_state.label = 1;
|
|
38
|
+
case 1:
|
|
39
|
+
_state.trys.push([
|
|
40
|
+
1,
|
|
41
|
+
6,
|
|
42
|
+
7,
|
|
43
|
+
8
|
|
44
|
+
]);
|
|
45
|
+
_iterator = exts[Symbol.iterator]();
|
|
46
|
+
_state.label = 2;
|
|
47
|
+
case 2:
|
|
48
|
+
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
|
|
49
|
+
return [
|
|
50
|
+
3,
|
|
51
|
+
5
|
|
52
|
+
];
|
|
53
|
+
ext = _step.value;
|
|
54
|
+
maybeMatch = path.join(pwd, "".concat(AGGRED_DIR.mock, "/index").concat(ext));
|
|
55
|
+
return [
|
|
56
|
+
4,
|
|
57
|
+
fs.pathExists(maybeMatch)
|
|
58
|
+
];
|
|
59
|
+
case 3:
|
|
60
|
+
if (_state.sent()) {
|
|
61
|
+
mockFilePath = maybeMatch;
|
|
62
|
+
return [
|
|
63
|
+
3,
|
|
64
|
+
5
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
_state.label = 4;
|
|
68
|
+
case 4:
|
|
69
|
+
_iteratorNormalCompletion = true;
|
|
70
|
+
return [
|
|
71
|
+
3,
|
|
72
|
+
2
|
|
73
|
+
];
|
|
74
|
+
case 5:
|
|
75
|
+
return [
|
|
76
|
+
3,
|
|
77
|
+
8
|
|
78
|
+
];
|
|
79
|
+
case 6:
|
|
80
|
+
err = _state.sent();
|
|
81
|
+
_didIteratorError = true;
|
|
82
|
+
_iteratorError = err;
|
|
83
|
+
return [
|
|
84
|
+
3,
|
|
85
|
+
8
|
|
86
|
+
];
|
|
87
|
+
case 7:
|
|
88
|
+
try {
|
|
89
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
90
|
+
_iterator.return();
|
|
91
|
+
}
|
|
92
|
+
} finally {
|
|
93
|
+
if (_didIteratorError) {
|
|
94
|
+
throw _iteratorError;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return [
|
|
98
|
+
7
|
|
99
|
+
];
|
|
100
|
+
case 8:
|
|
101
|
+
if (!mockFilePath) {
|
|
102
|
+
return [
|
|
103
|
+
2,
|
|
104
|
+
null
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
return [
|
|
108
|
+
4,
|
|
109
|
+
import(mockFilePath)
|
|
110
|
+
];
|
|
111
|
+
case 9:
|
|
112
|
+
_ref2 = _state.sent(), mockModule = _ref2.default, config = _ref2.config;
|
|
113
|
+
enable = config === null || config === void 0 ? void 0 : config.enable;
|
|
114
|
+
if (enable === false) {
|
|
115
|
+
return [
|
|
116
|
+
2
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
if (!mockModule) {
|
|
120
|
+
throw new Error("Mock file ".concat(mockFilePath, " parsed failed!"));
|
|
121
|
+
}
|
|
122
|
+
Object.entries(mockModule).forEach(function(param2) {
|
|
123
|
+
var _param = _sliced_to_array(param2, 2), key = _param[0], handler = _param[1];
|
|
124
|
+
var _parseKey = parseKey(key), method = _parseKey.method, _$path = _parseKey.path;
|
|
125
|
+
var methodName = method.toLowerCase();
|
|
126
|
+
var handlerId = "".concat(methodName, "-").concat(_$path);
|
|
127
|
+
mockHandlerRegistry.set(handlerId, {
|
|
128
|
+
handler,
|
|
129
|
+
isRegistered: false
|
|
130
|
+
});
|
|
131
|
+
if (typeof server[methodName] === "function") {
|
|
132
|
+
var mockHandler = function() {
|
|
133
|
+
var _ref3 = _async_to_generator(function(c, next) {
|
|
134
|
+
var _mockHandlerRegistry_get, isEnabled, handler2;
|
|
135
|
+
return _ts_generator(this, function(_state2) {
|
|
136
|
+
switch (_state2.label) {
|
|
137
|
+
case 0:
|
|
138
|
+
if (typeof enable === "function") {
|
|
139
|
+
isEnabled = enable(c.env.node.req, c.env.node.res);
|
|
140
|
+
if (!isEnabled) {
|
|
141
|
+
return [
|
|
142
|
+
2,
|
|
143
|
+
next()
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
handler2 = (_mockHandlerRegistry_get = mockHandlerRegistry.get(handlerId)) === null || _mockHandlerRegistry_get === void 0 ? void 0 : _mockHandlerRegistry_get.handler;
|
|
148
|
+
if (!(typeof handler2 === "function"))
|
|
149
|
+
return [
|
|
150
|
+
3,
|
|
151
|
+
2
|
|
152
|
+
];
|
|
153
|
+
return [
|
|
154
|
+
4,
|
|
155
|
+
connectMid2HonoMid(handler2)(c, next)
|
|
156
|
+
];
|
|
157
|
+
case 1:
|
|
158
|
+
_state2.sent();
|
|
159
|
+
return [
|
|
160
|
+
3,
|
|
161
|
+
3
|
|
162
|
+
];
|
|
163
|
+
case 2:
|
|
164
|
+
return [
|
|
165
|
+
2,
|
|
166
|
+
c.json(handler2)
|
|
167
|
+
];
|
|
168
|
+
case 3:
|
|
169
|
+
return [
|
|
170
|
+
2
|
|
171
|
+
];
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
return function mockHandler2(c, next) {
|
|
176
|
+
return _ref3.apply(this, arguments);
|
|
177
|
+
};
|
|
178
|
+
}();
|
|
179
|
+
var handlerInfo = mockHandlerRegistry.get(handlerId);
|
|
180
|
+
if (handlerInfo && !(handlerInfo === null || handlerInfo === void 0 ? void 0 : handlerInfo.isRegistered)) {
|
|
181
|
+
server[methodName](_$path, mockHandler);
|
|
182
|
+
handlerInfo.isRegistered = true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
return [
|
|
187
|
+
2
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
return function registerMockHandlers2(_) {
|
|
193
|
+
return _ref.apply(this, arguments);
|
|
194
|
+
};
|
|
195
|
+
}();
|
|
196
|
+
export {
|
|
197
|
+
registerMockHandlers
|
|
198
|
+
};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { LOADABLE_STATS_FILE, MAIN_ENTRY_NAME, ROUTE_MANIFEST_FILE, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
|
|
5
|
+
function getServerManifest(pwd, routes) {
|
|
6
|
+
return _getServerManifest.apply(this, arguments);
|
|
7
|
+
}
|
|
8
|
+
function _getServerManifest() {
|
|
9
|
+
_getServerManifest = _async_to_generator(function(pwd, routes) {
|
|
10
|
+
var loaderBundles, renderBundles, loadableUri, loadableStats, routesManifestUri, routeManifest;
|
|
11
|
+
return _ts_generator(this, function(_state) {
|
|
12
|
+
switch (_state.label) {
|
|
13
|
+
case 0:
|
|
14
|
+
loaderBundles = {};
|
|
15
|
+
renderBundles = {};
|
|
16
|
+
return [
|
|
17
|
+
4,
|
|
18
|
+
Promise.all(routes.map(function() {
|
|
19
|
+
var _ref = _async_to_generator(function(route) {
|
|
20
|
+
var entryName, loaderBundlePath, renderBundlePath, dynamicImport;
|
|
21
|
+
return _ts_generator(this, function(_state2) {
|
|
22
|
+
switch (_state2.label) {
|
|
23
|
+
case 0:
|
|
24
|
+
entryName = route.entryName || MAIN_ENTRY_NAME;
|
|
25
|
+
loaderBundlePath = path.join(pwd, SERVER_BUNDLE_DIRECTORY, "".concat(entryName, "-server-loaders.js"));
|
|
26
|
+
renderBundlePath = path.join(pwd, route.bundle || "");
|
|
27
|
+
dynamicImport = function(filePath) {
|
|
28
|
+
try {
|
|
29
|
+
var module = require(filePath);
|
|
30
|
+
return Promise.resolve(module);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
return Promise.reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return [
|
|
36
|
+
4,
|
|
37
|
+
Promise.allSettled([
|
|
38
|
+
dynamicImport(loaderBundlePath),
|
|
39
|
+
dynamicImport(renderBundlePath)
|
|
40
|
+
]).then(function(results) {
|
|
41
|
+
var _results_ = results[0], loaderStatus = _results_.status;
|
|
42
|
+
if (loaderStatus === "fulfilled") {
|
|
43
|
+
loaderBundles[entryName] = results[0].value;
|
|
44
|
+
}
|
|
45
|
+
var _results_1 = results[1], renderStatus = _results_1.status;
|
|
46
|
+
if (renderStatus === "fulfilled") {
|
|
47
|
+
renderBundles[entryName] = results[1].value;
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
];
|
|
51
|
+
case 1:
|
|
52
|
+
_state2.sent();
|
|
53
|
+
return [
|
|
54
|
+
2
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
return function(route) {
|
|
60
|
+
return _ref.apply(this, arguments);
|
|
61
|
+
};
|
|
62
|
+
}()))
|
|
63
|
+
];
|
|
64
|
+
case 1:
|
|
65
|
+
_state.sent();
|
|
66
|
+
loadableUri = path.join(pwd, LOADABLE_STATS_FILE);
|
|
67
|
+
return [
|
|
68
|
+
4,
|
|
69
|
+
import(loadableUri).catch(function(_) {
|
|
70
|
+
return {};
|
|
71
|
+
})
|
|
72
|
+
];
|
|
73
|
+
case 2:
|
|
74
|
+
loadableStats = _state.sent();
|
|
75
|
+
routesManifestUri = path.join(pwd, ROUTE_MANIFEST_FILE);
|
|
76
|
+
return [
|
|
77
|
+
4,
|
|
78
|
+
import(routesManifestUri).catch(function(_) {
|
|
79
|
+
return {};
|
|
80
|
+
})
|
|
81
|
+
];
|
|
82
|
+
case 3:
|
|
83
|
+
routeManifest = _state.sent();
|
|
84
|
+
return [
|
|
85
|
+
2,
|
|
86
|
+
{
|
|
87
|
+
loaderBundles,
|
|
88
|
+
renderBundles,
|
|
89
|
+
loadableStats,
|
|
90
|
+
routeManifest
|
|
91
|
+
}
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
return _getServerManifest.apply(this, arguments);
|
|
97
|
+
}
|
|
98
|
+
function injectServerManifest(pwd, routes) {
|
|
99
|
+
return function() {
|
|
100
|
+
var _ref = _async_to_generator(function(c, next) {
|
|
101
|
+
var serverManifest;
|
|
102
|
+
return _ts_generator(this, function(_state) {
|
|
103
|
+
switch (_state.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
if (!(routes && !c.get("serverManifest")))
|
|
106
|
+
return [
|
|
107
|
+
3,
|
|
108
|
+
2
|
|
109
|
+
];
|
|
110
|
+
return [
|
|
111
|
+
4,
|
|
112
|
+
getServerManifest(pwd, routes)
|
|
113
|
+
];
|
|
114
|
+
case 1:
|
|
115
|
+
serverManifest = _state.sent();
|
|
116
|
+
c.set("serverManifest", serverManifest);
|
|
117
|
+
_state.label = 2;
|
|
118
|
+
case 2:
|
|
119
|
+
return [
|
|
120
|
+
4,
|
|
121
|
+
next()
|
|
122
|
+
];
|
|
123
|
+
case 3:
|
|
124
|
+
_state.sent();
|
|
125
|
+
return [
|
|
126
|
+
2
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
return function(c, next) {
|
|
132
|
+
return _ref.apply(this, arguments);
|
|
133
|
+
};
|
|
134
|
+
}();
|
|
135
|
+
}
|
|
136
|
+
export {
|
|
137
|
+
getServerManifest,
|
|
138
|
+
injectServerManifest
|
|
139
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
5
|
+
import { getMimeType } from "hono/utils/mime";
|
|
6
|
+
import { sortRoutes } from "../../../utils";
|
|
7
|
+
function createPublicMiddleware(param) {
|
|
8
|
+
var pwd = param.pwd, routes = param.routes;
|
|
9
|
+
return function() {
|
|
10
|
+
var _ref = _async_to_generator(function(c, next) {
|
|
11
|
+
var route, entryPath, filename, data, mimeType;
|
|
12
|
+
return _ts_generator(this, function(_state) {
|
|
13
|
+
switch (_state.label) {
|
|
14
|
+
case 0:
|
|
15
|
+
route = matchRoute(c.req, routes);
|
|
16
|
+
if (!route)
|
|
17
|
+
return [
|
|
18
|
+
3,
|
|
19
|
+
2
|
|
20
|
+
];
|
|
21
|
+
entryPath = route.entryPath;
|
|
22
|
+
filename = path.join(pwd, entryPath);
|
|
23
|
+
return [
|
|
24
|
+
4,
|
|
25
|
+
fileReader.readFile(filename, "buffer")
|
|
26
|
+
];
|
|
27
|
+
case 1:
|
|
28
|
+
data = _state.sent();
|
|
29
|
+
mimeType = getMimeType(filename);
|
|
30
|
+
if (data !== null) {
|
|
31
|
+
if (mimeType) {
|
|
32
|
+
c.header("Content-Type", mimeType);
|
|
33
|
+
}
|
|
34
|
+
return [
|
|
35
|
+
2,
|
|
36
|
+
c.body(data, 200)
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
_state.label = 2;
|
|
40
|
+
case 2:
|
|
41
|
+
return [
|
|
42
|
+
4,
|
|
43
|
+
next()
|
|
44
|
+
];
|
|
45
|
+
case 3:
|
|
46
|
+
return [
|
|
47
|
+
2,
|
|
48
|
+
_state.sent()
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return function(c, next) {
|
|
54
|
+
return _ref.apply(this, arguments);
|
|
55
|
+
};
|
|
56
|
+
}();
|
|
57
|
+
}
|
|
58
|
+
function matchRoute(req, routes) {
|
|
59
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
60
|
+
try {
|
|
61
|
+
for (var _iterator = routes.sort(sortRoutes)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
62
|
+
var route = _step.value;
|
|
63
|
+
if (!route.isSSR && !route.isApi && route.entryPath.startsWith("public") && req.path.startsWith(route.urlPath)) {
|
|
64
|
+
return route;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} catch (err) {
|
|
68
|
+
_didIteratorError = true;
|
|
69
|
+
_iteratorError = err;
|
|
70
|
+
} finally {
|
|
71
|
+
try {
|
|
72
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
73
|
+
_iterator.return();
|
|
74
|
+
}
|
|
75
|
+
} finally {
|
|
76
|
+
if (_didIteratorError) {
|
|
77
|
+
throw _iteratorError;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return void 0;
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
createPublicMiddleware
|
|
85
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
3
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import { fs } from "@modern-js/utils";
|
|
6
|
+
import { getMimeType } from "hono/utils/mime";
|
|
7
|
+
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
8
|
+
import { createErrorHtml } from "../../../utils";
|
|
9
|
+
import { createPublicMiddleware } from "./serverPublic";
|
|
10
|
+
function createStaticMiddleware(options) {
|
|
11
|
+
var pwd = options.pwd, routes = options.routes;
|
|
12
|
+
var prefix = options.output.assetPrefix || "/";
|
|
13
|
+
var _options_output = options.output, tmp = _options_output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
|
|
14
|
+
var _options_html = options.html, favicon = _options_html.favicon, faviconByEntries = _options_html.faviconByEntries;
|
|
15
|
+
var favicons = prepareFavicons(favicon, faviconByEntries);
|
|
16
|
+
var staticFiles = [
|
|
17
|
+
cssPath,
|
|
18
|
+
jsPath,
|
|
19
|
+
mediaPath
|
|
20
|
+
].filter(function(v) {
|
|
21
|
+
return Boolean(v);
|
|
22
|
+
});
|
|
23
|
+
var staticReg = [
|
|
24
|
+
"static/",
|
|
25
|
+
"upload/"
|
|
26
|
+
].concat(_to_consumable_array(staticFiles));
|
|
27
|
+
var iconReg = [
|
|
28
|
+
"favicon.ico",
|
|
29
|
+
"icon.png"
|
|
30
|
+
].concat(_to_consumable_array(favicons));
|
|
31
|
+
var regPrefix = prefix.endsWith("/") ? prefix : "".concat(prefix, "/");
|
|
32
|
+
var staticPathRegExp = new RegExp("^".concat(regPrefix, "(").concat(_to_consumable_array(staticReg).concat(_to_consumable_array(iconReg)).join("|"), ")"));
|
|
33
|
+
return function() {
|
|
34
|
+
var _ref2 = _async_to_generator(function(c, next) {
|
|
35
|
+
var pathname, hit, filepath, mimeType, stat, size, chunk;
|
|
36
|
+
return _ts_generator(this, function(_state) {
|
|
37
|
+
switch (_state.label) {
|
|
38
|
+
case 0:
|
|
39
|
+
pathname = c.req.path;
|
|
40
|
+
hit = staticPathRegExp.test(pathname);
|
|
41
|
+
if (!hit)
|
|
42
|
+
return [
|
|
43
|
+
3,
|
|
44
|
+
4
|
|
45
|
+
];
|
|
46
|
+
filepath = path.join(pwd, pathname.replace(prefix, function() {
|
|
47
|
+
return "";
|
|
48
|
+
}));
|
|
49
|
+
return [
|
|
50
|
+
4,
|
|
51
|
+
fs.pathExists(filepath)
|
|
52
|
+
];
|
|
53
|
+
case 1:
|
|
54
|
+
if (!_state.sent()) {
|
|
55
|
+
return [
|
|
56
|
+
2,
|
|
57
|
+
c.html(createErrorHtml(404), 404)
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
mimeType = getMimeType(filepath);
|
|
61
|
+
if (mimeType) {
|
|
62
|
+
c.header("Content-Type", mimeType);
|
|
63
|
+
}
|
|
64
|
+
return [
|
|
65
|
+
4,
|
|
66
|
+
fs.lstat(filepath)
|
|
67
|
+
];
|
|
68
|
+
case 2:
|
|
69
|
+
stat = _state.sent();
|
|
70
|
+
size = stat.size;
|
|
71
|
+
return [
|
|
72
|
+
4,
|
|
73
|
+
fileReader.readFile(filepath, "buffer")
|
|
74
|
+
];
|
|
75
|
+
case 3:
|
|
76
|
+
chunk = _state.sent();
|
|
77
|
+
c.header("Content-Length", String(size));
|
|
78
|
+
return [
|
|
79
|
+
2,
|
|
80
|
+
c.body(chunk, 200)
|
|
81
|
+
];
|
|
82
|
+
case 4:
|
|
83
|
+
return [
|
|
84
|
+
2,
|
|
85
|
+
createPublicMiddleware({
|
|
86
|
+
pwd,
|
|
87
|
+
routes: routes || []
|
|
88
|
+
})(c, next)
|
|
89
|
+
];
|
|
90
|
+
case 5:
|
|
91
|
+
return [
|
|
92
|
+
2
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
return function(c, next) {
|
|
98
|
+
return _ref2.apply(this, arguments);
|
|
99
|
+
};
|
|
100
|
+
}();
|
|
101
|
+
}
|
|
102
|
+
var prepareFavicons = function(favicon, faviconByEntries) {
|
|
103
|
+
var faviconNames = [];
|
|
104
|
+
if (favicon && typeof favicon === "string") {
|
|
105
|
+
faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
|
|
106
|
+
}
|
|
107
|
+
if (faviconByEntries) {
|
|
108
|
+
Object.keys(faviconByEntries).forEach(function(f) {
|
|
109
|
+
var curFavicon = faviconByEntries[f];
|
|
110
|
+
if (curFavicon) {
|
|
111
|
+
faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf("/") + 1));
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return faviconNames;
|
|
116
|
+
};
|
|
117
|
+
export {
|
|
118
|
+
createStaticMiddleware
|
|
119
|
+
};
|