@modern-js/server-core 2.67.3 → 2.67.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/adapters/node/helper/loadConfig.js +5 -1
- package/dist/cjs/adapters/node/node.js +20 -8
- package/dist/cjs/plugins/customServer/index.js +4 -10
- package/dist/cjs/plugins/index.js +3 -0
- package/dist/cjs/plugins/middlewares.js +43 -0
- package/dist/cjs/plugins/render/index.js +10 -5
- package/dist/cjs/plugins/render/inject.js +2 -2
- package/dist/cjs/serverBase.js +0 -1
- package/dist/esm/adapters/node/helper/loadConfig.js +7 -3
- package/dist/esm/adapters/node/node.js +54 -8
- package/dist/esm/plugins/customServer/index.js +4 -12
- package/dist/esm/plugins/index.js +2 -0
- package/dist/esm/plugins/middlewares.js +22 -0
- package/dist/esm/plugins/render/index.js +53 -29
- package/dist/esm/plugins/render/inject.js +3 -2
- package/dist/esm/serverBase.js +0 -1
- package/dist/esm-node/adapters/node/helper/loadConfig.js +6 -2
- package/dist/esm-node/adapters/node/node.js +20 -8
- package/dist/esm-node/plugins/customServer/index.js +4 -10
- package/dist/esm-node/plugins/index.js +2 -0
- package/dist/esm-node/plugins/middlewares.js +19 -0
- package/dist/esm-node/plugins/render/index.js +11 -6
- package/dist/esm-node/plugins/render/inject.js +2 -2
- package/dist/esm-node/serverBase.js +0 -1
- package/dist/types/adapters/node/helper/loadConfig.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/plugins/customServer/index.d.ts +2 -4
- package/dist/types/plugins/index.d.ts +1 -0
- package/dist/types/plugins/middlewares.d.ts +2 -0
- package/dist/types/types/plugins/base.d.ts +8 -11
- package/dist/types/types/plugins/index.d.ts +1 -1
- package/dist/types/types/plugins/new.d.ts +2 -2
- package/dist/types/types/server.d.ts +1 -1
- package/package.json +8 -8
|
@@ -53,12 +53,16 @@ async function loadServerConfigOld(pwd, configFile) {
|
|
|
53
53
|
const serverConfig = await requireConfig(serverConfigPath);
|
|
54
54
|
return serverConfig;
|
|
55
55
|
}
|
|
56
|
-
async function loadServerRuntimeConfig(pwd, oldServerFile = import_utils.DEFAULT_SERVER_CONFIG, newServerConfigPath) {
|
|
56
|
+
async function loadServerRuntimeConfig(pwd, oldServerFile = import_utils.DEFAULT_SERVER_CONFIG, newServerConfigPath, metaName) {
|
|
57
57
|
const newServerConfig = newServerConfigPath && await loadServerConfigNew(newServerConfigPath);
|
|
58
58
|
if (newServerConfig) {
|
|
59
59
|
return newServerConfig;
|
|
60
60
|
}
|
|
61
61
|
const oldServerConfig = await loadServerConfigOld(pwd, oldServerFile);
|
|
62
|
+
if (oldServerConfig) {
|
|
63
|
+
const meta = (0, import_utils.getMeta)(metaName);
|
|
64
|
+
console.warn(`${import_utils.chalk.red("\n[Warning]")} ${import_utils.chalk.yellow.bold(`\`${oldServerFile}\``)} is no longer maintained. To extend the server, please migrate to ${import_utils.chalk.yellow.bold(`\`server/${meta}.server.ts\``)};`);
|
|
65
|
+
}
|
|
62
66
|
return oldServerConfig;
|
|
63
67
|
}
|
|
64
68
|
function loadServerCliConfig(pwd, defaultConfig = {}) {
|
|
@@ -43,14 +43,26 @@ var import_polyfills = require("./polyfills");
|
|
|
43
43
|
(0, import_install.installGlobals)();
|
|
44
44
|
const createWebRequest = (req, res, body) => {
|
|
45
45
|
const headerRecord = [];
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
47
|
+
if (key.startsWith(":")) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
for (const item of value) {
|
|
52
|
+
if (item !== void 0) {
|
|
53
|
+
headerRecord.push([
|
|
54
|
+
key,
|
|
55
|
+
item
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
} else if (value !== void 0) {
|
|
60
|
+
if (typeof value === "string") {
|
|
61
|
+
headerRecord.push([
|
|
62
|
+
key,
|
|
63
|
+
value
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
68
|
const { method } = req;
|
|
@@ -92,19 +92,14 @@ class CustomServer {
|
|
|
92
92
|
}
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
|
-
async getServerMiddleware(
|
|
95
|
+
async getServerMiddleware() {
|
|
96
96
|
const serverMiddleware = await this.serverMiddlewarePromise;
|
|
97
97
|
if (!serverMiddleware || !(0, import_utils.isFunction)(serverMiddleware) && !(0, import_utils.isArray)(serverMiddleware)) {
|
|
98
|
-
return
|
|
98
|
+
return;
|
|
99
99
|
}
|
|
100
100
|
if (Array.isArray(serverMiddleware)) {
|
|
101
101
|
const unstableMiddlewares = getServerMidFromUnstableMid(serverMiddleware);
|
|
102
|
-
return
|
|
103
|
-
...renderMiddlewares || [],
|
|
104
|
-
...unstableMiddlewares
|
|
105
|
-
];
|
|
106
|
-
} else if (renderMiddlewares) {
|
|
107
|
-
return renderMiddlewares;
|
|
102
|
+
return unstableMiddlewares;
|
|
108
103
|
}
|
|
109
104
|
return async (c, next) => {
|
|
110
105
|
var _c_env_node_res, _c_env_node, _c_env;
|
|
@@ -130,9 +125,8 @@ class CustomServer {
|
|
|
130
125
|
}
|
|
131
126
|
};
|
|
132
127
|
}
|
|
133
|
-
constructor(hooks,
|
|
128
|
+
constructor(hooks, pwd) {
|
|
134
129
|
this.hooks = hooks;
|
|
135
|
-
this.serverBase = serverBase;
|
|
136
130
|
const webExtension = [];
|
|
137
131
|
this.serverMiddlewarePromise = hooks.prepareWebServer.call({
|
|
138
132
|
pwd,
|
|
@@ -23,6 +23,7 @@ __export(plugins_exports, {
|
|
|
23
23
|
faviconPlugin: () => import_favicon.faviconPlugin,
|
|
24
24
|
getRenderHandler: () => import_render.getRenderHandler,
|
|
25
25
|
handleSetupResult: () => import_compat.handleSetupResult,
|
|
26
|
+
injectConfigMiddlewarePlugin: () => import_middlewares.injectConfigMiddlewarePlugin,
|
|
26
27
|
injectRenderHandlerPlugin: () => import_render.injectRenderHandlerPlugin,
|
|
27
28
|
injectServerTiming: () => import_monitors.injectServerTiming,
|
|
28
29
|
injectloggerPlugin: () => import_monitors.injectloggerPlugin,
|
|
@@ -38,6 +39,7 @@ var import_processedBy = require("./processedBy");
|
|
|
38
39
|
var import_log = require("./log");
|
|
39
40
|
var import_default = require("./default");
|
|
40
41
|
var import_compat = require("./compat");
|
|
42
|
+
var import_middlewares = require("./middlewares");
|
|
41
43
|
// Annotate the CommonJS export names for ESM import in node:
|
|
42
44
|
0 && (module.exports = {
|
|
43
45
|
compatPlugin,
|
|
@@ -45,6 +47,7 @@ var import_compat = require("./compat");
|
|
|
45
47
|
faviconPlugin,
|
|
46
48
|
getRenderHandler,
|
|
47
49
|
handleSetupResult,
|
|
50
|
+
injectConfigMiddlewarePlugin,
|
|
48
51
|
injectRenderHandlerPlugin,
|
|
49
52
|
injectServerTiming,
|
|
50
53
|
injectloggerPlugin,
|
|
@@ -0,0 +1,43 @@
|
|
|
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 middlewares_exports = {};
|
|
20
|
+
__export(middlewares_exports, {
|
|
21
|
+
injectConfigMiddlewarePlugin: () => injectConfigMiddlewarePlugin
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(middlewares_exports);
|
|
24
|
+
const injectConfigMiddlewarePlugin = (configMiddlewares = [], configRenderMiddlewares = []) => ({
|
|
25
|
+
name: "@modern-js/plugin-inject-config-middleware",
|
|
26
|
+
setup(api) {
|
|
27
|
+
return {
|
|
28
|
+
prepare() {
|
|
29
|
+
const { middlewares, renderMiddlewares } = api.useAppContext();
|
|
30
|
+
configMiddlewares.forEach((m) => {
|
|
31
|
+
middlewares.push(m);
|
|
32
|
+
});
|
|
33
|
+
configRenderMiddlewares.forEach((m) => {
|
|
34
|
+
renderMiddlewares.push(m);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
injectConfigMiddlewarePlugin
|
|
43
|
+
});
|
|
@@ -33,15 +33,13 @@ const renderPlugin = () => ({
|
|
|
33
33
|
setup(api) {
|
|
34
34
|
return {
|
|
35
35
|
async prepare() {
|
|
36
|
-
|
|
37
|
-
const { middlewares, routes, render, distDirectory: pwd, serverBase } = api.useAppContext();
|
|
36
|
+
const { middlewares, routes, render, distDirectory: pwd, renderMiddlewares } = api.useAppContext();
|
|
38
37
|
const hooks = api.getHooks();
|
|
39
38
|
const config = api.useConfigContext();
|
|
40
39
|
if (!routes) {
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
43
|
-
const customServer = new import_customServer.CustomServer(hooks,
|
|
44
|
-
const serverMiddleware = ((_config_render = config.render) === null || _config_render === void 0 ? void 0 : _config_render.middleware) && (0, import_customServer.getServerMidFromUnstableMid)(config.render.middleware);
|
|
42
|
+
const customServer = new import_customServer.CustomServer(hooks, pwd);
|
|
45
43
|
const pageRoutes = getPageRoutes(routes);
|
|
46
44
|
middlewares.push({
|
|
47
45
|
name: "page-latency",
|
|
@@ -59,7 +57,14 @@ const renderPlugin = () => ({
|
|
|
59
57
|
handler: customServerHookMiddleware
|
|
60
58
|
});
|
|
61
59
|
}
|
|
62
|
-
|
|
60
|
+
renderMiddlewares === null || renderMiddlewares === void 0 ? void 0 : renderMiddlewares.forEach((m) => {
|
|
61
|
+
middlewares.push({
|
|
62
|
+
name: m.name,
|
|
63
|
+
path: urlPath,
|
|
64
|
+
handler: m.handler
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
const customServerMiddleware = await customServer.getServerMiddleware();
|
|
63
68
|
customServerMiddleware && middlewares.push({
|
|
64
69
|
name: "custom-server-middleware",
|
|
65
70
|
path: urlPath,
|
|
@@ -28,7 +28,6 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
28
28
|
setup(api) {
|
|
29
29
|
return {
|
|
30
30
|
async prepare() {
|
|
31
|
-
var _config_render;
|
|
32
31
|
const { distDirectory: pwd, routes, metaName } = api.useAppContext();
|
|
33
32
|
const config = api.useConfigContext();
|
|
34
33
|
const hookRunner = api.useHookRunners();
|
|
@@ -47,7 +46,8 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
47
46
|
routes,
|
|
48
47
|
config,
|
|
49
48
|
metaName,
|
|
50
|
-
|
|
49
|
+
// TODO: support modern.server.ts cache config
|
|
50
|
+
cacheConfig,
|
|
51
51
|
staticGenerate,
|
|
52
52
|
onFallback
|
|
53
53
|
};
|
package/dist/cjs/serverBase.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
3
|
import path from "path";
|
|
4
|
-
import { fs, DEFAULT_SERVER_CONFIG, OUTPUT_CONFIG_FILE, lodash as _, compatibleRequire, ensureAbsolutePath, requireExistModule } from "@modern-js/utils";
|
|
4
|
+
import { fs, DEFAULT_SERVER_CONFIG, OUTPUT_CONFIG_FILE, lodash as _, chalk, compatibleRequire, ensureAbsolutePath, getMeta, requireExistModule } from "@modern-js/utils";
|
|
5
5
|
import { parse } from "flatted";
|
|
6
6
|
var requireConfig = function() {
|
|
7
7
|
var _ref = _async_to_generator(function(serverConfigPath) {
|
|
@@ -82,12 +82,12 @@ function loadServerRuntimeConfig(pwd) {
|
|
|
82
82
|
}
|
|
83
83
|
function _loadServerRuntimeConfig() {
|
|
84
84
|
_loadServerRuntimeConfig = _async_to_generator(function(pwd) {
|
|
85
|
-
var oldServerFile, newServerConfigPath, newServerConfig, _tmp, oldServerConfig;
|
|
85
|
+
var oldServerFile, newServerConfigPath, metaName, newServerConfig, _tmp, oldServerConfig, meta;
|
|
86
86
|
var _arguments = arguments;
|
|
87
87
|
return _ts_generator(this, function(_state) {
|
|
88
88
|
switch (_state.label) {
|
|
89
89
|
case 0:
|
|
90
|
-
oldServerFile = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : DEFAULT_SERVER_CONFIG, newServerConfigPath = _arguments.length > 2 ? _arguments[2] : void 0;
|
|
90
|
+
oldServerFile = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : DEFAULT_SERVER_CONFIG, newServerConfigPath = _arguments.length > 2 ? _arguments[2] : void 0, metaName = _arguments.length > 3 ? _arguments[3] : void 0;
|
|
91
91
|
_tmp = newServerConfigPath;
|
|
92
92
|
if (!_tmp)
|
|
93
93
|
return [
|
|
@@ -115,6 +115,10 @@ function _loadServerRuntimeConfig() {
|
|
|
115
115
|
];
|
|
116
116
|
case 3:
|
|
117
117
|
oldServerConfig = _state.sent();
|
|
118
|
+
if (oldServerConfig) {
|
|
119
|
+
meta = getMeta(metaName);
|
|
120
|
+
console.warn("".concat(chalk.red("\n[Warning]"), " ").concat(chalk.yellow.bold("`".concat(oldServerFile, "`")), " is no longer maintained. To extend the server, please migrate to ").concat(chalk.yellow.bold("`server/".concat(meta, ".server.ts`")), ";"));
|
|
121
|
+
}
|
|
118
122
|
return [
|
|
119
123
|
2,
|
|
120
124
|
oldServerConfig
|
|
@@ -12,14 +12,60 @@ import { writeReadableStreamToWritable as writeReadableStreamToWritable2 } from
|
|
|
12
12
|
installGlobals();
|
|
13
13
|
var createWebRequest = function(req, res, body) {
|
|
14
14
|
var headerRecord = [];
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
16
|
+
try {
|
|
17
|
+
for (var _iterator = Object.entries(req.headers)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
18
|
+
var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
|
|
19
|
+
if (key.startsWith(":")) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (Array.isArray(value)) {
|
|
23
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
|
|
24
|
+
try {
|
|
25
|
+
for (var _iterator1 = value[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
26
|
+
var item = _step1.value;
|
|
27
|
+
if (item !== void 0) {
|
|
28
|
+
headerRecord.push([
|
|
29
|
+
key,
|
|
30
|
+
item
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
} catch (err) {
|
|
35
|
+
_didIteratorError1 = true;
|
|
36
|
+
_iteratorError1 = err;
|
|
37
|
+
} finally {
|
|
38
|
+
try {
|
|
39
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
40
|
+
_iterator1.return();
|
|
41
|
+
}
|
|
42
|
+
} finally {
|
|
43
|
+
if (_didIteratorError1) {
|
|
44
|
+
throw _iteratorError1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} else if (value !== void 0) {
|
|
49
|
+
if (typeof value === "string") {
|
|
50
|
+
headerRecord.push([
|
|
51
|
+
key,
|
|
52
|
+
value
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
} catch (err) {
|
|
58
|
+
_didIteratorError = true;
|
|
59
|
+
_iteratorError = err;
|
|
60
|
+
} finally {
|
|
61
|
+
try {
|
|
62
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
63
|
+
_iterator.return();
|
|
64
|
+
}
|
|
65
|
+
} finally {
|
|
66
|
+
if (_didIteratorError) {
|
|
67
|
+
throw _iteratorError;
|
|
68
|
+
}
|
|
23
69
|
}
|
|
24
70
|
}
|
|
25
71
|
var method = req.method;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
|
|
3
|
-
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
4
3
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
4
|
import { time } from "@modern-js/runtime-utils/time";
|
|
6
5
|
import { isArray, isFunction } from "@modern-js/utils";
|
|
@@ -17,10 +16,9 @@ var isHtmlResponse = function(response) {
|
|
|
17
16
|
};
|
|
18
17
|
var CustomServer = /* @__PURE__ */ function() {
|
|
19
18
|
"use strict";
|
|
20
|
-
function CustomServer2(hooks,
|
|
19
|
+
function CustomServer2(hooks, pwd) {
|
|
21
20
|
_class_call_check(this, CustomServer2);
|
|
22
21
|
this.hooks = hooks;
|
|
23
|
-
this.serverBase = serverBase;
|
|
24
22
|
var webExtension = [];
|
|
25
23
|
this.serverMiddlewarePromise = hooks.prepareWebServer.call({
|
|
26
24
|
pwd,
|
|
@@ -165,7 +163,7 @@ var CustomServer = /* @__PURE__ */ function() {
|
|
|
165
163
|
};
|
|
166
164
|
}();
|
|
167
165
|
};
|
|
168
|
-
_proto.getServerMiddleware = function getServerMiddleware(
|
|
166
|
+
_proto.getServerMiddleware = function getServerMiddleware() {
|
|
169
167
|
var _this = this;
|
|
170
168
|
return _async_to_generator(function() {
|
|
171
169
|
var serverMiddleware, unstableMiddlewares;
|
|
@@ -180,20 +178,14 @@ var CustomServer = /* @__PURE__ */ function() {
|
|
|
180
178
|
serverMiddleware = _state.sent();
|
|
181
179
|
if (!serverMiddleware || !isFunction(serverMiddleware) && !isArray(serverMiddleware)) {
|
|
182
180
|
return [
|
|
183
|
-
2
|
|
184
|
-
renderMiddlewares
|
|
181
|
+
2
|
|
185
182
|
];
|
|
186
183
|
}
|
|
187
184
|
if (Array.isArray(serverMiddleware)) {
|
|
188
185
|
unstableMiddlewares = getServerMidFromUnstableMid(serverMiddleware);
|
|
189
186
|
return [
|
|
190
187
|
2,
|
|
191
|
-
|
|
192
|
-
];
|
|
193
|
-
} else if (renderMiddlewares) {
|
|
194
|
-
return [
|
|
195
|
-
2,
|
|
196
|
-
renderMiddlewares
|
|
188
|
+
unstableMiddlewares
|
|
197
189
|
];
|
|
198
190
|
}
|
|
199
191
|
return [
|
|
@@ -5,12 +5,14 @@ import { processedByPlugin } from "./processedBy";
|
|
|
5
5
|
import { logPlugin } from "./log";
|
|
6
6
|
import { createDefaultPlugins } from "./default";
|
|
7
7
|
import { compatPlugin, handleSetupResult } from "./compat";
|
|
8
|
+
import { injectConfigMiddlewarePlugin } from "./middlewares";
|
|
8
9
|
export {
|
|
9
10
|
compatPlugin,
|
|
10
11
|
createDefaultPlugins,
|
|
11
12
|
faviconPlugin,
|
|
12
13
|
getRenderHandler,
|
|
13
14
|
handleSetupResult,
|
|
15
|
+
injectConfigMiddlewarePlugin,
|
|
14
16
|
injectRenderHandlerPlugin,
|
|
15
17
|
injectServerTiming,
|
|
16
18
|
injectloggerPlugin,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var injectConfigMiddlewarePlugin = function() {
|
|
2
|
+
var configMiddlewares = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], configRenderMiddlewares = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
3
|
+
return {
|
|
4
|
+
name: "@modern-js/plugin-inject-config-middleware",
|
|
5
|
+
setup: function setup(api) {
|
|
6
|
+
return {
|
|
7
|
+
prepare: function prepare() {
|
|
8
|
+
var _api_useAppContext = api.useAppContext(), middlewares = _api_useAppContext.middlewares, renderMiddlewares = _api_useAppContext.renderMiddlewares;
|
|
9
|
+
configMiddlewares.forEach(function(m) {
|
|
10
|
+
middlewares.push(m);
|
|
11
|
+
});
|
|
12
|
+
configRenderMiddlewares.forEach(function(m) {
|
|
13
|
+
renderMiddlewares.push(m);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
injectConfigMiddlewarePlugin
|
|
22
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { _ as _ts_values } from "@swc/helpers/_/_ts_values";
|
|
3
4
|
import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
|
|
4
5
|
import { getLoaderCtx } from "../../helper";
|
|
5
6
|
import { sortRoutes } from "../../utils";
|
|
6
|
-
import { CustomServer
|
|
7
|
+
import { CustomServer } from "../customServer";
|
|
7
8
|
import { requestLatencyMiddleware } from "../monitors";
|
|
8
9
|
export * from "./inject";
|
|
9
10
|
var renderPlugin = function() {
|
|
@@ -13,11 +14,11 @@ var renderPlugin = function() {
|
|
|
13
14
|
return {
|
|
14
15
|
prepare: function prepare() {
|
|
15
16
|
return _async_to_generator(function() {
|
|
16
|
-
var
|
|
17
|
+
var _api_useAppContext, middlewares, routes, render, pwd, renderMiddlewares, hooks, config, customServer, pageRoutes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
|
|
17
18
|
return _ts_generator(this, function(_state) {
|
|
18
19
|
switch (_state.label) {
|
|
19
20
|
case 0:
|
|
20
|
-
_api_useAppContext = api.useAppContext(), middlewares = _api_useAppContext.middlewares, routes = _api_useAppContext.routes, render = _api_useAppContext.render, pwd = _api_useAppContext.distDirectory,
|
|
21
|
+
_api_useAppContext = api.useAppContext(), middlewares = _api_useAppContext.middlewares, routes = _api_useAppContext.routes, render = _api_useAppContext.render, pwd = _api_useAppContext.distDirectory, renderMiddlewares = _api_useAppContext.renderMiddlewares;
|
|
21
22
|
hooks = api.getHooks();
|
|
22
23
|
config = api.useConfigContext();
|
|
23
24
|
if (!routes) {
|
|
@@ -25,8 +26,7 @@ var renderPlugin = function() {
|
|
|
25
26
|
2
|
|
26
27
|
];
|
|
27
28
|
}
|
|
28
|
-
customServer = new CustomServer(hooks,
|
|
29
|
-
serverMiddleware = ((_config_render = config.render) === null || _config_render === void 0 ? void 0 : _config_render.middleware) && getServerMidFromUnstableMid(config.render.middleware);
|
|
29
|
+
customServer = new CustomServer(hooks, pwd);
|
|
30
30
|
pageRoutes = getPageRoutes(routes);
|
|
31
31
|
middlewares.push({
|
|
32
32
|
name: "page-latency",
|
|
@@ -41,6 +41,51 @@ var renderPlugin = function() {
|
|
|
41
41
|
7,
|
|
42
42
|
8
|
|
43
43
|
]);
|
|
44
|
+
_loop = function() {
|
|
45
|
+
var route, _config_server, originUrlPath, _route_entryName, entryName, urlPath, customServerHookMiddleware, customServerMiddleware;
|
|
46
|
+
return _ts_generator(this, function(_state2) {
|
|
47
|
+
switch (_state2.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
route = _step.value;
|
|
50
|
+
originUrlPath = route.urlPath, _route_entryName = route.entryName, entryName = _route_entryName === void 0 ? MAIN_ENTRY_NAME : _route_entryName;
|
|
51
|
+
urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
|
|
52
|
+
if (((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.disableHook) !== true) {
|
|
53
|
+
customServerHookMiddleware = customServer.getHookMiddleware(entryName, routes);
|
|
54
|
+
middlewares.push({
|
|
55
|
+
name: "custom-server-hook",
|
|
56
|
+
path: urlPath,
|
|
57
|
+
handler: customServerHookMiddleware
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
renderMiddlewares === null || renderMiddlewares === void 0 ? void 0 : renderMiddlewares.forEach(function(m) {
|
|
61
|
+
middlewares.push({
|
|
62
|
+
name: m.name,
|
|
63
|
+
path: urlPath,
|
|
64
|
+
handler: m.handler
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
return [
|
|
68
|
+
4,
|
|
69
|
+
customServer.getServerMiddleware()
|
|
70
|
+
];
|
|
71
|
+
case 1:
|
|
72
|
+
customServerMiddleware = _state2.sent();
|
|
73
|
+
customServerMiddleware && middlewares.push({
|
|
74
|
+
name: "custom-server-middleware",
|
|
75
|
+
path: urlPath,
|
|
76
|
+
handler: customServerMiddleware
|
|
77
|
+
});
|
|
78
|
+
render && middlewares.push({
|
|
79
|
+
name: "render",
|
|
80
|
+
path: urlPath,
|
|
81
|
+
handler: createRenderHandler(render)
|
|
82
|
+
});
|
|
83
|
+
return [
|
|
84
|
+
2
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
44
89
|
_iterator = pageRoutes[Symbol.iterator]();
|
|
45
90
|
_state.label = 2;
|
|
46
91
|
case 2:
|
|
@@ -49,33 +94,12 @@ var renderPlugin = function() {
|
|
|
49
94
|
3,
|
|
50
95
|
5
|
|
51
96
|
];
|
|
52
|
-
route = _step.value;
|
|
53
|
-
originUrlPath = route.urlPath, _route_entryName = route.entryName, entryName = _route_entryName === void 0 ? MAIN_ENTRY_NAME : _route_entryName;
|
|
54
|
-
urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
|
|
55
|
-
if (((_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.disableHook) !== true) {
|
|
56
|
-
customServerHookMiddleware = customServer.getHookMiddleware(entryName, routes);
|
|
57
|
-
middlewares.push({
|
|
58
|
-
name: "custom-server-hook",
|
|
59
|
-
path: urlPath,
|
|
60
|
-
handler: customServerHookMiddleware
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
97
|
return [
|
|
64
|
-
|
|
65
|
-
|
|
98
|
+
5,
|
|
99
|
+
_ts_values(_loop())
|
|
66
100
|
];
|
|
67
101
|
case 3:
|
|
68
|
-
|
|
69
|
-
customServerMiddleware && middlewares.push({
|
|
70
|
-
name: "custom-server-middleware",
|
|
71
|
-
path: urlPath,
|
|
72
|
-
handler: customServerMiddleware
|
|
73
|
-
});
|
|
74
|
-
render && middlewares.push({
|
|
75
|
-
name: "render",
|
|
76
|
-
path: urlPath,
|
|
77
|
-
handler: createRenderHandler(render)
|
|
78
|
-
});
|
|
102
|
+
_state.sent();
|
|
79
103
|
_state.label = 4;
|
|
80
104
|
case 4:
|
|
81
105
|
_iteratorNormalCompletion = true;
|
|
@@ -12,7 +12,7 @@ var injectRenderHandlerPlugin = function(param) {
|
|
|
12
12
|
return {
|
|
13
13
|
prepare: function prepare() {
|
|
14
14
|
return _async_to_generator(function() {
|
|
15
|
-
var
|
|
15
|
+
var _api_useAppContext, pwd, routes, metaName, config, hookRunner, onFallback, getRenderHandlerOptions, render;
|
|
16
16
|
return _ts_generator(this, function(_state) {
|
|
17
17
|
switch (_state.label) {
|
|
18
18
|
case 0:
|
|
@@ -54,7 +54,8 @@ var injectRenderHandlerPlugin = function(param) {
|
|
|
54
54
|
routes,
|
|
55
55
|
config,
|
|
56
56
|
metaName,
|
|
57
|
-
|
|
57
|
+
// TODO: support modern.server.ts cache config
|
|
58
|
+
cacheConfig,
|
|
58
59
|
staticGenerate,
|
|
59
60
|
onFallback
|
|
60
61
|
};
|
package/dist/esm/serverBase.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import { fs, DEFAULT_SERVER_CONFIG, OUTPUT_CONFIG_FILE, lodash as _, compatibleRequire, ensureAbsolutePath, requireExistModule } from "@modern-js/utils";
|
|
2
|
+
import { fs, DEFAULT_SERVER_CONFIG, OUTPUT_CONFIG_FILE, lodash as _, chalk, compatibleRequire, ensureAbsolutePath, getMeta, requireExistModule } from "@modern-js/utils";
|
|
3
3
|
import { parse } from "flatted";
|
|
4
4
|
const requireConfig = async (serverConfigPath) => {
|
|
5
5
|
if (fs.pathExistsSync(serverConfigPath)) {
|
|
@@ -19,12 +19,16 @@ async function loadServerConfigOld(pwd, configFile) {
|
|
|
19
19
|
const serverConfig = await requireConfig(serverConfigPath);
|
|
20
20
|
return serverConfig;
|
|
21
21
|
}
|
|
22
|
-
async function loadServerRuntimeConfig(pwd, oldServerFile = DEFAULT_SERVER_CONFIG, newServerConfigPath) {
|
|
22
|
+
async function loadServerRuntimeConfig(pwd, oldServerFile = DEFAULT_SERVER_CONFIG, newServerConfigPath, metaName) {
|
|
23
23
|
const newServerConfig = newServerConfigPath && await loadServerConfigNew(newServerConfigPath);
|
|
24
24
|
if (newServerConfig) {
|
|
25
25
|
return newServerConfig;
|
|
26
26
|
}
|
|
27
27
|
const oldServerConfig = await loadServerConfigOld(pwd, oldServerFile);
|
|
28
|
+
if (oldServerConfig) {
|
|
29
|
+
const meta = getMeta(metaName);
|
|
30
|
+
console.warn(`${chalk.red("\n[Warning]")} ${chalk.yellow.bold(`\`${oldServerFile}\``)} is no longer maintained. To extend the server, please migrate to ${chalk.yellow.bold(`\`server/${meta}.server.ts\``)};`);
|
|
31
|
+
}
|
|
28
32
|
return oldServerConfig;
|
|
29
33
|
}
|
|
30
34
|
function loadServerCliConfig(pwd, defaultConfig = {}) {
|
|
@@ -7,14 +7,26 @@ import { writeReadableStreamToWritable as writeReadableStreamToWritable2 } from
|
|
|
7
7
|
installGlobals();
|
|
8
8
|
const createWebRequest = (req, res, body) => {
|
|
9
9
|
const headerRecord = [];
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
for (const [key, value] of Object.entries(req.headers)) {
|
|
11
|
+
if (key.startsWith(":")) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
for (const item of value) {
|
|
16
|
+
if (item !== void 0) {
|
|
17
|
+
headerRecord.push([
|
|
18
|
+
key,
|
|
19
|
+
item
|
|
20
|
+
]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
} else if (value !== void 0) {
|
|
24
|
+
if (typeof value === "string") {
|
|
25
|
+
headerRecord.push([
|
|
26
|
+
key,
|
|
27
|
+
value
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
18
30
|
}
|
|
19
31
|
}
|
|
20
32
|
const { method } = req;
|
|
@@ -68,19 +68,14 @@ class CustomServer {
|
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
-
async getServerMiddleware(
|
|
71
|
+
async getServerMiddleware() {
|
|
72
72
|
const serverMiddleware = await this.serverMiddlewarePromise;
|
|
73
73
|
if (!serverMiddleware || !isFunction(serverMiddleware) && !isArray(serverMiddleware)) {
|
|
74
|
-
return
|
|
74
|
+
return;
|
|
75
75
|
}
|
|
76
76
|
if (Array.isArray(serverMiddleware)) {
|
|
77
77
|
const unstableMiddlewares = getServerMidFromUnstableMid(serverMiddleware);
|
|
78
|
-
return
|
|
79
|
-
...renderMiddlewares || [],
|
|
80
|
-
...unstableMiddlewares
|
|
81
|
-
];
|
|
82
|
-
} else if (renderMiddlewares) {
|
|
83
|
-
return renderMiddlewares;
|
|
78
|
+
return unstableMiddlewares;
|
|
84
79
|
}
|
|
85
80
|
return async (c, next) => {
|
|
86
81
|
var _c_env_node_res, _c_env_node, _c_env;
|
|
@@ -106,9 +101,8 @@ class CustomServer {
|
|
|
106
101
|
}
|
|
107
102
|
};
|
|
108
103
|
}
|
|
109
|
-
constructor(hooks,
|
|
104
|
+
constructor(hooks, pwd) {
|
|
110
105
|
this.hooks = hooks;
|
|
111
|
-
this.serverBase = serverBase;
|
|
112
106
|
const webExtension = [];
|
|
113
107
|
this.serverMiddlewarePromise = hooks.prepareWebServer.call({
|
|
114
108
|
pwd,
|
|
@@ -5,12 +5,14 @@ import { processedByPlugin } from "./processedBy";
|
|
|
5
5
|
import { logPlugin } from "./log";
|
|
6
6
|
import { createDefaultPlugins } from "./default";
|
|
7
7
|
import { compatPlugin, handleSetupResult } from "./compat";
|
|
8
|
+
import { injectConfigMiddlewarePlugin } from "./middlewares";
|
|
8
9
|
export {
|
|
9
10
|
compatPlugin,
|
|
10
11
|
createDefaultPlugins,
|
|
11
12
|
faviconPlugin,
|
|
12
13
|
getRenderHandler,
|
|
13
14
|
handleSetupResult,
|
|
15
|
+
injectConfigMiddlewarePlugin,
|
|
14
16
|
injectRenderHandlerPlugin,
|
|
15
17
|
injectServerTiming,
|
|
16
18
|
injectloggerPlugin,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const injectConfigMiddlewarePlugin = (configMiddlewares = [], configRenderMiddlewares = []) => ({
|
|
2
|
+
name: "@modern-js/plugin-inject-config-middleware",
|
|
3
|
+
setup(api) {
|
|
4
|
+
return {
|
|
5
|
+
prepare() {
|
|
6
|
+
const { middlewares, renderMiddlewares } = api.useAppContext();
|
|
7
|
+
configMiddlewares.forEach((m) => {
|
|
8
|
+
middlewares.push(m);
|
|
9
|
+
});
|
|
10
|
+
configRenderMiddlewares.forEach((m) => {
|
|
11
|
+
renderMiddlewares.push(m);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
export {
|
|
18
|
+
injectConfigMiddlewarePlugin
|
|
19
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
|
|
2
2
|
import { getLoaderCtx } from "../../helper";
|
|
3
3
|
import { sortRoutes } from "../../utils";
|
|
4
|
-
import { CustomServer
|
|
4
|
+
import { CustomServer } from "../customServer";
|
|
5
5
|
import { requestLatencyMiddleware } from "../monitors";
|
|
6
6
|
export * from "./inject";
|
|
7
7
|
const renderPlugin = () => ({
|
|
@@ -9,15 +9,13 @@ const renderPlugin = () => ({
|
|
|
9
9
|
setup(api) {
|
|
10
10
|
return {
|
|
11
11
|
async prepare() {
|
|
12
|
-
|
|
13
|
-
const { middlewares, routes, render, distDirectory: pwd, serverBase } = api.useAppContext();
|
|
12
|
+
const { middlewares, routes, render, distDirectory: pwd, renderMiddlewares } = api.useAppContext();
|
|
14
13
|
const hooks = api.getHooks();
|
|
15
14
|
const config = api.useConfigContext();
|
|
16
15
|
if (!routes) {
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
19
|
-
const customServer = new CustomServer(hooks,
|
|
20
|
-
const serverMiddleware = ((_config_render = config.render) === null || _config_render === void 0 ? void 0 : _config_render.middleware) && getServerMidFromUnstableMid(config.render.middleware);
|
|
18
|
+
const customServer = new CustomServer(hooks, pwd);
|
|
21
19
|
const pageRoutes = getPageRoutes(routes);
|
|
22
20
|
middlewares.push({
|
|
23
21
|
name: "page-latency",
|
|
@@ -35,7 +33,14 @@ const renderPlugin = () => ({
|
|
|
35
33
|
handler: customServerHookMiddleware
|
|
36
34
|
});
|
|
37
35
|
}
|
|
38
|
-
|
|
36
|
+
renderMiddlewares === null || renderMiddlewares === void 0 ? void 0 : renderMiddlewares.forEach((m) => {
|
|
37
|
+
middlewares.push({
|
|
38
|
+
name: m.name,
|
|
39
|
+
path: urlPath,
|
|
40
|
+
handler: m.handler
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const customServerMiddleware = await customServer.getServerMiddleware();
|
|
39
44
|
customServerMiddleware && middlewares.push({
|
|
40
45
|
name: "custom-server-middleware",
|
|
41
46
|
path: urlPath,
|
|
@@ -4,7 +4,6 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
4
4
|
setup(api) {
|
|
5
5
|
return {
|
|
6
6
|
async prepare() {
|
|
7
|
-
var _config_render;
|
|
8
7
|
const { distDirectory: pwd, routes, metaName } = api.useAppContext();
|
|
9
8
|
const config = api.useConfigContext();
|
|
10
9
|
const hookRunner = api.useHookRunners();
|
|
@@ -23,7 +22,8 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
23
22
|
routes,
|
|
24
23
|
config,
|
|
25
24
|
metaName,
|
|
26
|
-
|
|
25
|
+
// TODO: support modern.server.ts cache config
|
|
26
|
+
cacheConfig,
|
|
27
27
|
staticGenerate,
|
|
28
28
|
onFallback
|
|
29
29
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CliConfig, ServerConfig, UserConfig } from '../../../types';
|
|
2
|
-
export declare function loadServerRuntimeConfig(pwd: string, oldServerFile?: string, newServerConfigPath?: string): Promise<ServerConfig | undefined>;
|
|
2
|
+
export declare function loadServerRuntimeConfig(pwd: string, oldServerFile?: string, newServerConfigPath?: string, metaName?: string): Promise<ServerConfig | undefined>;
|
|
3
3
|
export declare function loadServerCliConfig(pwd: string, defaultConfig?: UserConfig): CliConfig;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { AGGRED_DIR } from './constants';
|
|
|
3
3
|
export type { ServerBase, ServerBaseOptions } from './serverBase';
|
|
4
4
|
export { createServerBase } from './serverBase';
|
|
5
5
|
export { useHonoContext } from './context';
|
|
6
|
-
export { Hono
|
|
7
|
-
export type { Middleware, Context, Next, HonoRequest as InternalRequest, ServerEnv, ServerManifest, ServerLoaderBundle, } from './types';
|
|
6
|
+
export { Hono } from 'hono';
|
|
7
|
+
export type { Middleware, MiddlewareHandler, Context, Next, HonoRequest as InternalRequest, ServerEnv, ServerManifest, ServerLoaderBundle, } from './types';
|
|
8
8
|
export { getLoaderCtx } from './helper';
|
|
9
9
|
export * from './plugins';
|
|
10
10
|
export * from './types/plugins';
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { ServerRoute, UnstableMiddleware } from '@modern-js/types';
|
|
2
2
|
import type { ServerNodeEnv } from '../../adapters/node/hono';
|
|
3
|
-
import type { ServerBase } from '../../serverBase';
|
|
4
3
|
import type { Middleware, ServerEnv, ServerPluginHooks } from '../../types';
|
|
5
4
|
export declare class CustomServer {
|
|
6
5
|
private hooks;
|
|
7
6
|
private serverMiddlewarePromise;
|
|
8
|
-
|
|
9
|
-
constructor(hooks: ServerPluginHooks, serverBase: ServerBase, pwd: string);
|
|
7
|
+
constructor(hooks: ServerPluginHooks, pwd: string);
|
|
10
8
|
getHookMiddleware(entryName: string, routes: ServerRoute[]): Middleware<ServerEnv>;
|
|
11
|
-
getServerMiddleware(
|
|
9
|
+
getServerMiddleware(): Promise<Middleware<ServerNodeEnv & ServerEnv> | Array<Middleware<ServerNodeEnv & ServerEnv>> | undefined>;
|
|
12
10
|
}
|
|
13
11
|
export declare function getServerMidFromUnstableMid(serverMiddleware: UnstableMiddleware[]): Array<Middleware<ServerNodeEnv & ServerEnv>>;
|
|
@@ -5,3 +5,4 @@ export { processedByPlugin } from './processedBy';
|
|
|
5
5
|
export { logPlugin } from './log';
|
|
6
6
|
export { createDefaultPlugins, type CreateDefaultPluginsOptions, } from './default';
|
|
7
7
|
export { compatPlugin, handleSetupResult } from './compat';
|
|
8
|
+
export { injectConfigMiddlewarePlugin } from './middlewares';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Server as NodeServer } from 'http';
|
|
2
2
|
import type { Http2SecureServer } from 'node:http2';
|
|
3
|
-
import type { CacheOption, Container, HttpMethodDecider, Logger, Metrics, MiddlewareContext, Reporter, ServerRoute
|
|
3
|
+
import type { CacheOption, Container, HttpMethodDecider, Logger, Metrics, MiddlewareContext, Reporter, ServerRoute } from '@modern-js/types';
|
|
4
4
|
import type { MiddlewareHandler } from 'hono';
|
|
5
5
|
import type { UserConfig } from '../config';
|
|
6
6
|
import type { Render } from '../render';
|
|
@@ -36,15 +36,15 @@ export type WebServerStartInput = {
|
|
|
36
36
|
export type WebAdapter = (ctx: MiddlewareContext) => void | Promise<void>;
|
|
37
37
|
/** Plugin Api */
|
|
38
38
|
type MiddlewareOrder = 'pre' | 'post' | 'default';
|
|
39
|
-
export type
|
|
39
|
+
export type MiddlewareObj = {
|
|
40
40
|
name: string;
|
|
41
41
|
path?: string;
|
|
42
42
|
method?: 'options' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'all';
|
|
43
43
|
handler: MiddlewareHandler | MiddlewareHandler[];
|
|
44
|
-
before?: Array<
|
|
44
|
+
before?: Array<MiddlewareObj['name']>;
|
|
45
45
|
order?: MiddlewareOrder;
|
|
46
46
|
};
|
|
47
|
-
export type ServerMiddleware =
|
|
47
|
+
export type ServerMiddleware = MiddlewareObj;
|
|
48
48
|
export interface GetRenderHandlerOptions {
|
|
49
49
|
pwd: string;
|
|
50
50
|
routes: ServerRoute[];
|
|
@@ -56,7 +56,8 @@ export interface GetRenderHandlerOptions {
|
|
|
56
56
|
}
|
|
57
57
|
declare module '@modern-js/types' {
|
|
58
58
|
interface ISAppContext {
|
|
59
|
-
|
|
59
|
+
renderMiddlewares: MiddlewareObj[];
|
|
60
|
+
middlewares: MiddlewareObj[];
|
|
60
61
|
metaName: string;
|
|
61
62
|
getRenderOptions?: GetRenderHandlerOptions;
|
|
62
63
|
render?: Render;
|
|
@@ -68,12 +69,8 @@ export type CacheConfig = {
|
|
|
68
69
|
strategy: CacheOption;
|
|
69
70
|
container?: Container;
|
|
70
71
|
};
|
|
71
|
-
type RenderMiddleware = UnstableMiddleware;
|
|
72
|
-
export interface RenderConfig {
|
|
73
|
-
cache?: CacheConfig;
|
|
74
|
-
middleware?: RenderMiddleware[];
|
|
75
|
-
}
|
|
76
72
|
export type ServerConfig = {
|
|
77
|
-
|
|
73
|
+
renderMiddlewares?: MiddlewareObj[];
|
|
74
|
+
middlewares?: MiddlewareObj[];
|
|
78
75
|
plugins?: (ServerPlugin | ServerPluginLegacy)[];
|
|
79
76
|
} & UserConfig;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './new';
|
|
2
2
|
export * from './old';
|
|
3
|
-
export type { ServerConfig, CacheConfig, OnFallback, FallbackReason, GetRenderHandlerOptions, FileChangeEvent, FallbackInput, WebServerStartInput, APIServerStartInput, ServerMiddleware, } from './base';
|
|
3
|
+
export type { ServerConfig, CacheConfig, OnFallback, FallbackReason, GetRenderHandlerOptions, FileChangeEvent, FallbackInput, WebServerStartInput, APIServerStartInput, ServerMiddleware, MiddlewareObj, } from './base';
|
|
@@ -2,7 +2,7 @@ import type { AsyncHook, AsyncPipelineHook, ServerContext as BaseServerContext,
|
|
|
2
2
|
import type { Hooks } from '@modern-js/plugin-v2/server';
|
|
3
3
|
import type { AfterMatchContext, AfterRenderContext, AfterStreamingRenderContext, ISAppContext, UnstableMiddleware } from '@modern-js/types';
|
|
4
4
|
import type { MiddlewareHandler } from 'hono';
|
|
5
|
-
import type {
|
|
5
|
+
import type { MiddlewareObj } from './base';
|
|
6
6
|
import type { APIServerStartInput, FallbackInput, ServerConfig, WebAdapter, WebServerStartInput } from './base';
|
|
7
7
|
export type FallbackFn = (input: FallbackInput) => Promise<FallbackInput>;
|
|
8
8
|
export type PrepareWebServerFn = (input: WebServerStartInput) => Promise<WebAdapter | Array<UnstableMiddleware> | null>;
|
|
@@ -13,7 +13,7 @@ export type AfterStreamingRenderContextFn = (ctx: AfterStreamingRenderContext) =
|
|
|
13
13
|
export interface ServerPluginExtends extends BaseServerPluginExtends {
|
|
14
14
|
config: ServerConfig;
|
|
15
15
|
extendContext: {
|
|
16
|
-
middlewares:
|
|
16
|
+
middlewares: MiddlewareObj[];
|
|
17
17
|
};
|
|
18
18
|
extendApi: {
|
|
19
19
|
setAppContext: (c: ISAppContext) => void;
|
|
@@ -63,4 +63,4 @@ type ServerVariables = {
|
|
|
63
63
|
export type ServerEnv = {
|
|
64
64
|
Variables: ServerVariables;
|
|
65
65
|
};
|
|
66
|
-
export type { Context, Env, HonoRequest, Next, MiddlewareHandler as Middleware, } from 'hono';
|
|
66
|
+
export type { Context, Env, HonoRequest, Next, MiddlewareHandler, MiddlewareHandler as Middleware, } from 'hono';
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.67.
|
|
18
|
+
"version": "2.67.4",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"flatted": "^3.2.9",
|
|
55
55
|
"hono": "^3.12.2",
|
|
56
56
|
"ts-deepmerge": "7.0.2",
|
|
57
|
-
"@modern-js/plugin": "2.67.
|
|
58
|
-
"@modern-js/plugin-v2": "2.67.
|
|
59
|
-
"@modern-js/runtime-utils": "2.67.
|
|
60
|
-
"@modern-js/utils": "2.67.
|
|
57
|
+
"@modern-js/plugin": "2.67.4",
|
|
58
|
+
"@modern-js/plugin-v2": "2.67.4",
|
|
59
|
+
"@modern-js/runtime-utils": "2.67.4",
|
|
60
|
+
"@modern-js/utils": "2.67.4"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/cloneable-readable": "^2.0.3",
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
"jest": "^29",
|
|
69
69
|
"ts-jest": "^29.1.0",
|
|
70
70
|
"typescript": "^5",
|
|
71
|
-
"@modern-js/types": "2.67.
|
|
72
|
-
"@scripts/
|
|
73
|
-
"@scripts/
|
|
71
|
+
"@modern-js/types": "2.67.4",
|
|
72
|
+
"@scripts/build": "2.66.0",
|
|
73
|
+
"@scripts/jest-config": "2.66.0"
|
|
74
74
|
},
|
|
75
75
|
"sideEffects": false,
|
|
76
76
|
"publishConfig": {
|