@modern-js/prod-server 2.47.0 → 2.47.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/README.md +20 -16
- package/dist/cjs/{libs/hook-api/route.js → error.js} +16 -25
- package/dist/cjs/index.js +46 -24
- package/dist/esm/error.js +15 -0
- package/dist/esm/index.js +105 -19
- package/dist/esm-node/error.js +14 -0
- package/dist/esm-node/index.js +44 -17
- package/dist/types/error.d.ts +6 -0
- package/dist/types/index.d.ts +21 -11
- package/package.json +18 -92
- package/dist/cjs/constants.js +0 -72
- package/dist/cjs/libs/context/context.js +0 -240
- package/dist/cjs/libs/context/index.js +0 -31
- package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
- package/dist/cjs/libs/hook-api/base.js +0 -107
- package/dist/cjs/libs/hook-api/index.js +0 -85
- package/dist/cjs/libs/hook-api/index.worker.js +0 -119
- package/dist/cjs/libs/hook-api/template.js +0 -74
- package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
- package/dist/cjs/libs/loadConfig.js +0 -70
- package/dist/cjs/libs/metrics.js +0 -33
- package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
- package/dist/cjs/libs/preload/index.js +0 -24
- package/dist/cjs/libs/preload/parseLinks.js +0 -124
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
- package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
- package/dist/cjs/libs/proxy.js +0 -99
- package/dist/cjs/libs/render/index.js +0 -109
- package/dist/cjs/libs/render/measure.js +0 -74
- package/dist/cjs/libs/render/ssr.js +0 -126
- package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -56
- package/dist/cjs/libs/render/ssrCache/index.js +0 -83
- package/dist/cjs/libs/render/ssrCache/manager.js +0 -106
- package/dist/cjs/libs/render/static.js +0 -72
- package/dist/cjs/libs/render/type.js +0 -33
- package/dist/cjs/libs/render/utils.js +0 -41
- package/dist/cjs/libs/reporter.js +0 -39
- package/dist/cjs/libs/route/index.js +0 -85
- package/dist/cjs/libs/route/matcher.js +0 -117
- package/dist/cjs/libs/route/route.js +0 -49
- package/dist/cjs/libs/serveFile.js +0 -84
- package/dist/cjs/libs/serverTiming.js +0 -44
- package/dist/cjs/renderHtml.js +0 -72
- package/dist/cjs/server/index.js +0 -229
- package/dist/cjs/server/modernServer.js +0 -532
- package/dist/cjs/server/modernServerSplit.js +0 -67
- package/dist/cjs/type.js +0 -16
- package/dist/cjs/utils.js +0 -164
- package/dist/cjs/workerServer.js +0 -264
- package/dist/esm/constants.js +0 -43
- package/dist/esm/libs/context/context.js +0 -292
- package/dist/esm/libs/context/index.js +0 -8
- package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
- package/dist/esm/libs/hook-api/base.js +0 -108
- package/dist/esm/libs/hook-api/index.js +0 -55
- package/dist/esm/libs/hook-api/index.worker.js +0 -113
- package/dist/esm/libs/hook-api/route.js +0 -41
- package/dist/esm/libs/hook-api/template.js +0 -84
- package/dist/esm/libs/hook-api/templateForStream.js +0 -35
- package/dist/esm/libs/loadConfig.js +0 -36
- package/dist/esm/libs/metrics.js +0 -9
- package/dist/esm/libs/preload/flushServerHeader.js +0 -50
- package/dist/esm/libs/preload/index.js +0 -2
- package/dist/esm/libs/preload/parseLinks.js +0 -172
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm/libs/preload/transformLinks2String.js +0 -140
- package/dist/esm/libs/proxy.js +0 -160
- package/dist/esm/libs/render/index.js +0 -175
- package/dist/esm/libs/render/measure.js +0 -69
- package/dist/esm/libs/render/ssr.js +0 -129
- package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -33
- package/dist/esm/libs/render/ssrCache/index.js +0 -151
- package/dist/esm/libs/render/ssrCache/manager.js +0 -170
- package/dist/esm/libs/render/static.js +0 -100
- package/dist/esm/libs/render/type.js +0 -9
- package/dist/esm/libs/render/utils.js +0 -16
- package/dist/esm/libs/reporter.js +0 -15
- package/dist/esm/libs/route/index.js +0 -116
- package/dist/esm/libs/route/matcher.js +0 -128
- package/dist/esm/libs/route/route.js +0 -26
- package/dist/esm/libs/serveFile.js +0 -68
- package/dist/esm/libs/serverTiming.js +0 -30
- package/dist/esm/renderHtml.js +0 -150
- package/dist/esm/server/index.js +0 -426
- package/dist/esm/server/modernServer.js +0 -1018
- package/dist/esm/server/modernServerSplit.js +0 -138
- package/dist/esm/type.js +0 -0
- package/dist/esm/utils.js +0 -103
- package/dist/esm/workerServer.js +0 -347
- package/dist/esm-node/constants.js +0 -43
- package/dist/esm-node/libs/context/context.js +0 -206
- package/dist/esm-node/libs/context/index.js +0 -6
- package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
- package/dist/esm-node/libs/hook-api/base.js +0 -72
- package/dist/esm-node/libs/hook-api/index.js +0 -57
- package/dist/esm-node/libs/hook-api/index.worker.js +0 -92
- package/dist/esm-node/libs/hook-api/route.js +0 -24
- package/dist/esm-node/libs/hook-api/template.js +0 -49
- package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
- package/dist/esm-node/libs/loadConfig.js +0 -34
- package/dist/esm-node/libs/metrics.js +0 -9
- package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
- package/dist/esm-node/libs/preload/index.js +0 -2
- package/dist/esm-node/libs/preload/parseLinks.js +0 -90
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
- package/dist/esm-node/libs/proxy.js +0 -74
- package/dist/esm-node/libs/render/index.js +0 -75
- package/dist/esm-node/libs/render/measure.js +0 -49
- package/dist/esm-node/libs/render/ssr.js +0 -92
- package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -22
- package/dist/esm-node/libs/render/ssrCache/index.js +0 -59
- package/dist/esm-node/libs/render/ssrCache/manager.js +0 -82
- package/dist/esm-node/libs/render/static.js +0 -38
- package/dist/esm-node/libs/render/type.js +0 -9
- package/dist/esm-node/libs/render/utils.js +0 -16
- package/dist/esm-node/libs/reporter.js +0 -15
- package/dist/esm-node/libs/route/index.js +0 -60
- package/dist/esm-node/libs/route/matcher.js +0 -93
- package/dist/esm-node/libs/route/route.js +0 -25
- package/dist/esm-node/libs/serveFile.js +0 -49
- package/dist/esm-node/libs/serverTiming.js +0 -20
- package/dist/esm-node/renderHtml.js +0 -80
- package/dist/esm-node/server/index.js +0 -195
- package/dist/esm-node/server/modernServer.js +0 -498
- package/dist/esm-node/server/modernServerSplit.js +0 -43
- package/dist/esm-node/type.js +0 -0
- package/dist/esm-node/utils.js +0 -132
- package/dist/esm-node/workerServer.js +0 -239
- package/dist/types/constants.d.ts +0 -30
- package/dist/types/libs/context/context.d.ts +0 -62
- package/dist/types/libs/context/index.d.ts +0 -7
- package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
- package/dist/types/libs/hook-api/base.d.ts +0 -53
- package/dist/types/libs/hook-api/index.d.ts +0 -6
- package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
- package/dist/types/libs/hook-api/route.d.ts +0 -9
- package/dist/types/libs/hook-api/template.d.ts +0 -22
- package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
- package/dist/types/libs/loadConfig.d.ts +0 -13
- package/dist/types/libs/metrics.d.ts +0 -3
- package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
- package/dist/types/libs/preload/index.d.ts +0 -2
- package/dist/types/libs/preload/parseLinks.d.ts +0 -13
- package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
- package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
- package/dist/types/libs/proxy.d.ts +0 -13
- package/dist/types/libs/render/index.d.ts +0 -21
- package/dist/types/libs/render/measure.d.ts +0 -10
- package/dist/types/libs/render/ssr.d.ts +0 -12
- package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
- package/dist/types/libs/render/ssrCache/index.d.ts +0 -7
- package/dist/types/libs/render/ssrCache/manager.d.ts +0 -14
- package/dist/types/libs/render/static.d.ts +0 -3
- package/dist/types/libs/render/type.d.ts +0 -36
- package/dist/types/libs/render/utils.d.ts +0 -5
- package/dist/types/libs/reporter.d.ts +0 -2
- package/dist/types/libs/route/index.d.ts +0 -15
- package/dist/types/libs/route/matcher.d.ts +0 -15
- package/dist/types/libs/route/route.d.ts +0 -14
- package/dist/types/libs/serveFile.d.ts +0 -9
- package/dist/types/libs/serverTiming.d.ts +0 -13
- package/dist/types/renderHtml.d.ts +0 -23
- package/dist/types/server/index.d.ts +0 -55
- package/dist/types/server/modernServer.d.ts +0 -71
- package/dist/types/server/modernServerSplit.d.ts +0 -2
- package/dist/types/type.d.ts +0 -77
- package/dist/types/utils.d.ts +0 -24
- package/dist/types/workerServer.d.ts +0 -59
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
|
-
import { createAsyncPipeline } from "@modern-js/plugin";
|
|
3
|
-
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
|
|
4
|
-
import { RouteMatchManager } from "./libs/route";
|
|
5
|
-
import { metrics as defaultMetrics } from "./libs/metrics";
|
|
6
|
-
import { defaultReporter } from "./libs/reporter";
|
|
7
|
-
const createLogger = () => ({
|
|
8
|
-
error(message, ...args) {
|
|
9
|
-
console.error(message, ...args);
|
|
10
|
-
},
|
|
11
|
-
info(message, ...args) {
|
|
12
|
-
console.error(message, ...args);
|
|
13
|
-
},
|
|
14
|
-
warn(message, ...args) {
|
|
15
|
-
console.warn(message, ...args);
|
|
16
|
-
},
|
|
17
|
-
debug(message, ...args) {
|
|
18
|
-
console.debug(message, ...args);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
const calcFallback = (metaName) => `x-${metaName.split(/[-_]/)[0]}-ssr-fallback`;
|
|
22
|
-
class ReturnResponse {
|
|
23
|
-
/**
|
|
24
|
-
* Iterate a Object
|
|
25
|
-
* 1. adds the value if the key does not already exist.
|
|
26
|
-
* 2. append the value if the key does already exist.
|
|
27
|
-
*
|
|
28
|
-
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
|
|
29
|
-
* @param headers
|
|
30
|
-
* @returns
|
|
31
|
-
*/
|
|
32
|
-
appendHeaders(headers) {
|
|
33
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
34
|
-
this.headers.append(key, value.toString());
|
|
35
|
-
});
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Iterate a Object
|
|
40
|
-
* 1. adds the value if the key does not already exist.
|
|
41
|
-
* 2. modify the value if the key does already exist.
|
|
42
|
-
*
|
|
43
|
-
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
|
|
44
|
-
* @param headers
|
|
45
|
-
* @returns
|
|
46
|
-
*/
|
|
47
|
-
setHeaders(headers) {
|
|
48
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
49
|
-
this.headers.set(key, value.toString());
|
|
50
|
-
});
|
|
51
|
-
return this;
|
|
52
|
-
}
|
|
53
|
-
constructor(body, status, headers = {}) {
|
|
54
|
-
_define_property(this, "body", void 0);
|
|
55
|
-
_define_property(this, "status", void 0);
|
|
56
|
-
_define_property(this, "headers", void 0);
|
|
57
|
-
this.body = body;
|
|
58
|
-
this.status = status;
|
|
59
|
-
this.headers = new Headers(headers);
|
|
60
|
-
this.headers.set("content-type", "text/html;charset=UTF-8");
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
const RESPONSE_NOTFOUND = new ReturnResponse("404: Page not found", 404);
|
|
64
|
-
const isRedirect = (code) => {
|
|
65
|
-
return [
|
|
66
|
-
301,
|
|
67
|
-
302,
|
|
68
|
-
307,
|
|
69
|
-
308
|
|
70
|
-
].includes(code);
|
|
71
|
-
};
|
|
72
|
-
const checkIsSent = (context) => {
|
|
73
|
-
if (context.res.isSent) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
if (context.res.headers.get("Location") && isRedirect(context.res.status)) {
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
};
|
|
81
|
-
const middlewarePipeline = createAsyncPipeline();
|
|
82
|
-
const createHandler = (manifest) => {
|
|
83
|
-
const routeMgr = new RouteMatchManager();
|
|
84
|
-
const { pages, routes, options: manifestOpts } = manifest;
|
|
85
|
-
const { metaName = "modern-js", forceCSR = false } = manifestOpts || {};
|
|
86
|
-
routeMgr.reset(routes);
|
|
87
|
-
return async (options) => {
|
|
88
|
-
var _page_serverHooks_afterMatch, _page_serverHooks;
|
|
89
|
-
const { request, loadableStats, routeManifest } = options;
|
|
90
|
-
const url = new URL(request.url);
|
|
91
|
-
const pageMatch = routeMgr.match(url.pathname);
|
|
92
|
-
if (!pageMatch) {
|
|
93
|
-
return RESPONSE_NOTFOUND;
|
|
94
|
-
}
|
|
95
|
-
const entryName = pageMatch.spec.urlPath;
|
|
96
|
-
const page = pages[entryName];
|
|
97
|
-
if (forceCSR && url.searchParams.get("csr") === "1") {
|
|
98
|
-
return createResponse(page.template);
|
|
99
|
-
}
|
|
100
|
-
const logger = createLogger();
|
|
101
|
-
const metrics = defaultMetrics;
|
|
102
|
-
const reporter = defaultReporter;
|
|
103
|
-
const route = pageMatch.generate(url.pathname);
|
|
104
|
-
const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
|
|
105
|
-
const afterMatchHookContext = createAfterMatchContext(hookContext, entryName);
|
|
106
|
-
page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
|
|
107
|
-
if (checkIsSent(hookContext)) {
|
|
108
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
109
|
-
}
|
|
110
|
-
if (page.serverRender) {
|
|
111
|
-
try {
|
|
112
|
-
var _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2;
|
|
113
|
-
const middlewarsHookContext = createMiddlewareContext(hookContext);
|
|
114
|
-
applyMiddlewares(middlewarsHookContext, (_page_serverHooks1 = page.serverHooks) === null || _page_serverHooks1 === void 0 ? void 0 : _page_serverHooks1.middleware);
|
|
115
|
-
if (checkIsSent(hookContext)) {
|
|
116
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
117
|
-
}
|
|
118
|
-
if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
|
|
119
|
-
return createResponse(page.template);
|
|
120
|
-
}
|
|
121
|
-
const responseLike = {
|
|
122
|
-
headers: {},
|
|
123
|
-
statusCode: 200,
|
|
124
|
-
locals: {},
|
|
125
|
-
setHeader(key, value) {
|
|
126
|
-
this.headers[key] = value;
|
|
127
|
-
},
|
|
128
|
-
status(code) {
|
|
129
|
-
this.statusCode = code;
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
const params = pageMatch.parseURLParams(url.pathname) || {};
|
|
133
|
-
const { urlPath: baseUrl } = pageMatch;
|
|
134
|
-
const serverRenderContext = {
|
|
135
|
-
request: createServerRequest(url, baseUrl, request, params),
|
|
136
|
-
response: responseLike,
|
|
137
|
-
loadableStats,
|
|
138
|
-
routeManifest,
|
|
139
|
-
redirection: {},
|
|
140
|
-
template: page.template,
|
|
141
|
-
entryName: page.entryName,
|
|
142
|
-
logger,
|
|
143
|
-
reporter: defaultReporter,
|
|
144
|
-
metrics,
|
|
145
|
-
req: request,
|
|
146
|
-
res: responseLike,
|
|
147
|
-
serverTiming: {
|
|
148
|
-
addServeTiming() {
|
|
149
|
-
return this;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
const body = await page.serverRender(serverRenderContext);
|
|
154
|
-
const afterRenderHookContext = createAfterRenderContext(hookContext, route, body);
|
|
155
|
-
(_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, () => void 0);
|
|
156
|
-
if (checkIsSent(hookContext)) {
|
|
157
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
158
|
-
}
|
|
159
|
-
return new ReturnResponse(afterRenderHookContext.template.get(), responseLike.statusCode, responseLike.headers);
|
|
160
|
-
} catch (e) {
|
|
161
|
-
console.warn(`page(${pageMatch.spec.urlPath}) serverRender occur error: `);
|
|
162
|
-
console.warn(e);
|
|
163
|
-
return createResponse(page.template);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
console.warn(`Can't not page(${entryName}) serverRender`);
|
|
167
|
-
return createResponse(page.template);
|
|
168
|
-
function createServerRequest(url2, baseUrl, request2, params) {
|
|
169
|
-
const { pathname, host, searchParams } = url2;
|
|
170
|
-
const { headers: rawHeaders } = request2;
|
|
171
|
-
const headers = {};
|
|
172
|
-
rawHeaders.forEach((value, key) => {
|
|
173
|
-
headers[key] = value;
|
|
174
|
-
});
|
|
175
|
-
const query = Object.fromEntries(searchParams);
|
|
176
|
-
return {
|
|
177
|
-
url: url2.href,
|
|
178
|
-
baseUrl,
|
|
179
|
-
pathname,
|
|
180
|
-
host,
|
|
181
|
-
headers,
|
|
182
|
-
params,
|
|
183
|
-
query
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
};
|
|
188
|
-
function createResponse(template) {
|
|
189
|
-
if (template) {
|
|
190
|
-
return new ReturnResponse(template, 200);
|
|
191
|
-
} else {
|
|
192
|
-
return RESPONSE_NOTFOUND;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
196
|
-
const [res, req] = [
|
|
197
|
-
{
|
|
198
|
-
headers: new Headers(),
|
|
199
|
-
body: "",
|
|
200
|
-
status: 200,
|
|
201
|
-
isSent: false
|
|
202
|
-
},
|
|
203
|
-
new Request(url)
|
|
204
|
-
];
|
|
205
|
-
return {
|
|
206
|
-
res,
|
|
207
|
-
req,
|
|
208
|
-
logger,
|
|
209
|
-
metrics,
|
|
210
|
-
reporter
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
let appliedMiddlewares = false;
|
|
214
|
-
function applyMiddlewares(ctx, middleware) {
|
|
215
|
-
if (middleware) {
|
|
216
|
-
const middlewares = (() => {
|
|
217
|
-
if (Array.isArray(middleware)) {
|
|
218
|
-
return middleware;
|
|
219
|
-
} else {
|
|
220
|
-
return [
|
|
221
|
-
middleware
|
|
222
|
-
];
|
|
223
|
-
}
|
|
224
|
-
})();
|
|
225
|
-
if (!appliedMiddlewares) {
|
|
226
|
-
middlewares.forEach((middleware2) => {
|
|
227
|
-
middlewarePipeline.use(middleware2);
|
|
228
|
-
});
|
|
229
|
-
appliedMiddlewares = true;
|
|
230
|
-
}
|
|
231
|
-
middlewarePipeline.run(ctx, {
|
|
232
|
-
onLast: () => void 0
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
export {
|
|
237
|
-
ReturnResponse,
|
|
238
|
-
createHandler
|
|
239
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
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 enum ApiServerMode {
|
|
9
|
-
func = "function",
|
|
10
|
-
frame = "framework"
|
|
11
|
-
}
|
|
12
|
-
export declare const ERROR_DIGEST: {
|
|
13
|
-
INIT: string;
|
|
14
|
-
ENOTF: string;
|
|
15
|
-
WARMUP: string;
|
|
16
|
-
EINTER: string;
|
|
17
|
-
ERENDER: string;
|
|
18
|
-
EMICROINJ: string;
|
|
19
|
-
};
|
|
20
|
-
export declare const ERROR_PAGE_TEXT: Record<number, string>;
|
|
21
|
-
export declare const RUN_MODE: {
|
|
22
|
-
FULL: string;
|
|
23
|
-
TYPE: string;
|
|
24
|
-
};
|
|
25
|
-
export declare enum ServerReportTimings {
|
|
26
|
-
SERVER_HANDLE_REQUEST = "server-handle-request",
|
|
27
|
-
SERVER_MIDDLEWARE = "server-middleware",
|
|
28
|
-
SERVER_HOOK_AFTER_RENDER = "server-hook-after-render",
|
|
29
|
-
SERVER_HOOK_AFTER_MATCH = "server-hook-after-match"
|
|
30
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../type.d.ts" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
|
-
/// <reference types="node/http" />
|
|
6
|
-
import { IncomingMessage, ServerResponse } from 'http';
|
|
7
|
-
import qs from 'querystring';
|
|
8
|
-
import type { ModernServerContext as ModernServerContextInterface, Reporter as ModernServerReporter, ServerTiming as ModernServerTiming } from '@modern-js/types';
|
|
9
|
-
export type ContextOptions = {
|
|
10
|
-
metaName?: string;
|
|
11
|
-
etag?: boolean;
|
|
12
|
-
};
|
|
13
|
-
type ResponseBody = string | Buffer;
|
|
14
|
-
export declare class ModernServerContext implements ModernServerContextInterface {
|
|
15
|
-
#private;
|
|
16
|
-
/**
|
|
17
|
-
* http request
|
|
18
|
-
*/
|
|
19
|
-
req: IncomingMessage;
|
|
20
|
-
/**
|
|
21
|
-
* http response
|
|
22
|
-
*/
|
|
23
|
-
res: ServerResponse;
|
|
24
|
-
/**
|
|
25
|
-
* url params
|
|
26
|
-
*/
|
|
27
|
-
params: Record<string, string>;
|
|
28
|
-
reporter: ModernServerReporter;
|
|
29
|
-
serverTiming: ModernServerTiming;
|
|
30
|
-
get logger(): import("@modern-js/types").Logger;
|
|
31
|
-
get metrics(): import("@modern-js/types").Metrics;
|
|
32
|
-
serverData: Record<string, any>;
|
|
33
|
-
private options;
|
|
34
|
-
constructor(req: IncomingMessage, res: ServerResponse, options?: ContextOptions);
|
|
35
|
-
private get parsedURL();
|
|
36
|
-
private bind;
|
|
37
|
-
send(body: ResponseBody): void;
|
|
38
|
-
setParams(params: Record<string, string>): void;
|
|
39
|
-
setServerData(key: string, value: any): void;
|
|
40
|
-
getReqHeader(key: string): string | string[];
|
|
41
|
-
get fresh(): boolean;
|
|
42
|
-
get headers(): import("http").IncomingHttpHeaders;
|
|
43
|
-
get method(): string;
|
|
44
|
-
get url(): string;
|
|
45
|
-
set url(val: string);
|
|
46
|
-
get host(): string;
|
|
47
|
-
get protocol(): string;
|
|
48
|
-
get origin(): string;
|
|
49
|
-
get href(): string;
|
|
50
|
-
get path(): string;
|
|
51
|
-
set path(p: string);
|
|
52
|
-
get querystring(): string;
|
|
53
|
-
get query(): qs.ParsedUrlQuery;
|
|
54
|
-
get status(): number;
|
|
55
|
-
set status(statusCode: number);
|
|
56
|
-
/**
|
|
57
|
-
* 判断链接是否已经关闭
|
|
58
|
-
*/
|
|
59
|
-
resHasHandled(): boolean;
|
|
60
|
-
error(dig: string, e?: Error | string): void;
|
|
61
|
-
}
|
|
62
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../type.d.ts" />
|
|
2
|
-
/// <reference types="node/http" />
|
|
3
|
-
import { IncomingMessage, ServerResponse } from 'http';
|
|
4
|
-
import { ModernServerContext, ContextOptions } from './context';
|
|
5
|
-
export declare const createContext: (req: IncomingMessage, res: ServerResponse, options?: ContextOptions) => ModernServerContext;
|
|
6
|
-
export { ModernServerContext };
|
|
7
|
-
export type { ContextOptions };
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { CookieAPI, Metrics, ModernRequest, ModernResponse, Logger } from '@modern-js/types/server';
|
|
2
|
-
export interface ServerResponseLike {
|
|
3
|
-
statusCode?: number;
|
|
4
|
-
locals?: Record<string, any>;
|
|
5
|
-
getHeader: (key: string) => string | undefined | string[] | number;
|
|
6
|
-
setHeader: (key: string, value: string | number | string[]) => this | void;
|
|
7
|
-
removeHeader: (key: string) => void;
|
|
8
|
-
end: (body: string) => this | void;
|
|
9
|
-
}
|
|
10
|
-
export declare class BaseResponse implements ModernResponse {
|
|
11
|
-
cookies: CookieAPI;
|
|
12
|
-
private res;
|
|
13
|
-
constructor(res: ServerResponseLike);
|
|
14
|
-
get(key: string): string | number | string[] | undefined;
|
|
15
|
-
set(key: string, value: string | number): void | ServerResponseLike;
|
|
16
|
-
status(code: number): void;
|
|
17
|
-
private setCookie;
|
|
18
|
-
private clearCookie;
|
|
19
|
-
raw(body: string, options?: {
|
|
20
|
-
status?: number;
|
|
21
|
-
headers?: Record<string, any>;
|
|
22
|
-
}): void;
|
|
23
|
-
}
|
|
24
|
-
export interface ServerRequestLike {
|
|
25
|
-
url: string;
|
|
26
|
-
host: string;
|
|
27
|
-
path: string;
|
|
28
|
-
query: Record<string, any>;
|
|
29
|
-
headers: Record<string, any>;
|
|
30
|
-
}
|
|
31
|
-
export declare class BaseRequest implements ModernRequest {
|
|
32
|
-
readonly url: string;
|
|
33
|
-
readonly host: string;
|
|
34
|
-
readonly pathname: string;
|
|
35
|
-
readonly query: Record<string, any>;
|
|
36
|
-
readonly headers: Record<string, any>;
|
|
37
|
-
readonly cookie: string;
|
|
38
|
-
cookies: Pick<CookieAPI, 'get'>;
|
|
39
|
-
private _cookie;
|
|
40
|
-
constructor(request: ServerRequestLike);
|
|
41
|
-
private getCookie;
|
|
42
|
-
}
|
|
43
|
-
export interface ServerContextLike {
|
|
44
|
-
res: ServerResponseLike;
|
|
45
|
-
req: any;
|
|
46
|
-
metrics: Metrics;
|
|
47
|
-
logger: Logger;
|
|
48
|
-
url: string;
|
|
49
|
-
host: string;
|
|
50
|
-
path: string;
|
|
51
|
-
query: Record<string, any>;
|
|
52
|
-
headers: Record<string, any>;
|
|
53
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ModernServerContext, HookContext, AfterMatchContext, AfterRenderContext, MiddlewareContext, ServerRoute, AfterStreamingRenderContext } from '@modern-js/types';
|
|
2
|
-
export declare const base: (context: ModernServerContext) => HookContext;
|
|
3
|
-
export declare const createAfterMatchContext: (context: ModernServerContext, entryName: string) => AfterMatchContext;
|
|
4
|
-
export declare const createAfterRenderContext: (context: ModernServerContext, route: Partial<ServerRoute>, content: string) => AfterRenderContext;
|
|
5
|
-
export declare const createAfterStreamingRenderContext: (context: ModernServerContext, route: Partial<ServerRoute>) => (chunk: string) => AfterStreamingRenderContext;
|
|
6
|
-
export declare const createMiddlewareContext: (context: ModernServerContext) => MiddlewareContext;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AfterMatchContext, AfterRenderContext, HookContext, Logger, Metrics, MiddlewareContext, Reporter, ServerRoute } from '@modern-js/types/server';
|
|
2
|
-
export interface WorkerResponse {
|
|
3
|
-
headers: Headers;
|
|
4
|
-
status: number;
|
|
5
|
-
isSent: boolean;
|
|
6
|
-
locals?: Record<string, any>;
|
|
7
|
-
body?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface WorkerServerContext {
|
|
10
|
-
res: WorkerResponse;
|
|
11
|
-
req: Request;
|
|
12
|
-
logger: Logger;
|
|
13
|
-
reporter: Reporter;
|
|
14
|
-
metrics: Metrics;
|
|
15
|
-
}
|
|
16
|
-
export declare const base: (context: WorkerServerContext) => HookContext;
|
|
17
|
-
export declare const createAfterMatchContext: (context: WorkerServerContext, entryName: string) => AfterMatchContext;
|
|
18
|
-
export declare const createAfterRenderContext: (context: WorkerServerContext, route: Partial<ServerRoute>, content: string) => AfterRenderContext;
|
|
19
|
-
export declare const createMiddlewareContext: (context: WorkerServerContext) => MiddlewareContext<'worker'>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export declare const RegList: {
|
|
2
|
-
before: {
|
|
3
|
-
head: string;
|
|
4
|
-
body: string;
|
|
5
|
-
};
|
|
6
|
-
after: {
|
|
7
|
-
head: string;
|
|
8
|
-
body: string;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
export declare class TemplateAPI {
|
|
12
|
-
private content;
|
|
13
|
-
constructor(content: string);
|
|
14
|
-
get(): string;
|
|
15
|
-
set(content: string): void;
|
|
16
|
-
prependHead(fragment: string): void;
|
|
17
|
-
appendHead(fragment: string): void;
|
|
18
|
-
prependBody(fragment: string): void;
|
|
19
|
-
appendBody(fragment: string): void;
|
|
20
|
-
private replaceByFunction;
|
|
21
|
-
private replace;
|
|
22
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Transform } from 'stream';
|
|
3
|
-
export declare const templateInjectableStream: ({ prependHead, appendHead, prependBody, appendBody, }: {
|
|
4
|
-
prependHead?: string | undefined;
|
|
5
|
-
appendHead?: string | undefined;
|
|
6
|
-
prependBody?: string | undefined;
|
|
7
|
-
appendBody?: string | undefined;
|
|
8
|
-
}) => Transform;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ServerConfig, ServerOptions } from '@modern-js/server-core';
|
|
2
|
-
export declare const getServerConfigPath: (distDirectory: string, serverConfigFile?: string) => string;
|
|
3
|
-
export declare const requireConfig: (serverConfigPath: string) => any;
|
|
4
|
-
/**
|
|
5
|
-
* 对配置进行合并,开发环境下,cliConfig 与 serverConfig 进行深合并
|
|
6
|
-
* 生产环境下,resolvedConfig 与 serverConfig 进行深合并
|
|
7
|
-
* resolvedConfigPath: 构建序列化后的 modern.config.js 文件路径
|
|
8
|
-
*/
|
|
9
|
-
export declare const loadConfig: ({ cliConfig, serverConfig, resolvedConfigPath, }: {
|
|
10
|
-
cliConfig: ServerOptions;
|
|
11
|
-
serverConfig: ServerConfig;
|
|
12
|
-
resolvedConfigPath: string;
|
|
13
|
-
}) => any;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../type.d.ts" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node/http" />
|
|
4
|
-
import { OutgoingHttpHeaders } from 'http';
|
|
5
|
-
import { ServerOptions } from '@modern-js/server-core';
|
|
6
|
-
import { ModernServerContext } from '@modern-js/types';
|
|
7
|
-
export interface FlushServerHeaderOptions {
|
|
8
|
-
ctx: ModernServerContext;
|
|
9
|
-
distDir: string;
|
|
10
|
-
template: string;
|
|
11
|
-
serverConf: ServerOptions['server'];
|
|
12
|
-
headers?: OutgoingHttpHeaders;
|
|
13
|
-
}
|
|
14
|
-
export declare function flushServerHeader({ serverConf, ctx, distDir, template, headers, }: FlushServerHeaderOptions): Promise<void>;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface Link {
|
|
2
|
-
uri: string;
|
|
3
|
-
rel?: string;
|
|
4
|
-
as?: 'script' | 'style' | 'image' | 'video' | 'font' | string;
|
|
5
|
-
/** rest str(like attributes) that need add to link */
|
|
6
|
-
rest?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface ParseLinksOptions {
|
|
9
|
-
distDir: string;
|
|
10
|
-
pathname: string;
|
|
11
|
-
template: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function parseLinks({ pathname, distDir, template, }: ParseLinksOptions): Promise<Link[]>;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { ServerOptions } from '@modern-js/server-core';
|
|
2
|
-
export declare function transformToRegExp(input: string | RegExp): RegExp;
|
|
3
|
-
export declare function shouldFlushServerHeader(serverConf: ServerOptions['server'], userAgent?: string, disablePreload?: boolean): boolean;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference path="../type.d.ts" />
|
|
2
|
-
/// <reference types="node/http" />
|
|
3
|
-
import http from 'http';
|
|
4
|
-
import { RequestHandler } from 'http-proxy-middleware';
|
|
5
|
-
import { ProxyDetail, BffProxyOptions } from '@modern-js/types';
|
|
6
|
-
import type { ModernServerHandler } from '../type';
|
|
7
|
-
export type { BffProxyOptions };
|
|
8
|
-
export declare function formatProxyOptions(proxyOptions: BffProxyOptions): ProxyDetail[];
|
|
9
|
-
export type HttpUpgradeHandler = NonNullable<RequestHandler['upgrade']>;
|
|
10
|
-
export declare const createProxyHandler: (proxyOptions: BffProxyOptions) => {
|
|
11
|
-
handlers: ModernServerHandler[];
|
|
12
|
-
handleUpgrade: (server: http.Server) => void;
|
|
13
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ModernServerContext } from '@modern-js/types';
|
|
2
|
-
import { ServerOptions } from '@modern-js/server-core';
|
|
3
|
-
import { RenderResult, ServerHookRunner } from '../../type';
|
|
4
|
-
import { ModernRoute } from '../route';
|
|
5
|
-
import * as ssr from './ssr';
|
|
6
|
-
export type RenderHandler = (options: {
|
|
7
|
-
ctx: ModernServerContext;
|
|
8
|
-
route: ModernRoute;
|
|
9
|
-
runner: ServerHookRunner;
|
|
10
|
-
}) => Promise<RenderResult | null>;
|
|
11
|
-
type CreateRenderHandler = (ctx: {
|
|
12
|
-
distDir: string;
|
|
13
|
-
staticGenerate: boolean;
|
|
14
|
-
conf: ServerOptions;
|
|
15
|
-
ssrRender?: typeof ssr.render;
|
|
16
|
-
forceCSR?: boolean;
|
|
17
|
-
nonce?: string;
|
|
18
|
-
metaName?: string;
|
|
19
|
-
}) => RenderHandler;
|
|
20
|
-
export declare const createRenderHandler: CreateRenderHandler;
|
|
21
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { BaseSSRServerContext, Logger, Metrics } from '@modern-js/types';
|
|
2
|
-
export declare const createMetrics: (context: BaseSSRServerContext, metrics: Metrics) => {
|
|
3
|
-
emitTimer: (name: string, cost: number, tags?: Record<string, unknown>) => void;
|
|
4
|
-
emitCounter: (name: string, counter: number, tags?: Record<string, unknown>) => void;
|
|
5
|
-
};
|
|
6
|
-
export declare const createLogger: (serverContext: BaseSSRServerContext, logger: Logger) => {
|
|
7
|
-
error: (message: string, e: Error | string) => void;
|
|
8
|
-
info: (message: string, ...args: any[]) => void;
|
|
9
|
-
debug: (message: string, ...args: any[]) => void;
|
|
10
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { ModernServerContext } from '@modern-js/types';
|
|
2
|
-
import { RenderResult, ServerHookRunner } from '../../type';
|
|
3
|
-
import type { ModernRoute } from '../route';
|
|
4
|
-
export type SSRRenderOptions = {
|
|
5
|
-
distDir: string;
|
|
6
|
-
template: string;
|
|
7
|
-
route: ModernRoute;
|
|
8
|
-
staticGenerate: boolean;
|
|
9
|
-
enableUnsafeCtx?: boolean;
|
|
10
|
-
nonce?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const render: (ctx: ModernServerContext, renderOptions: SSRRenderOptions, runner: ServerHookRunner) => Promise<RenderResult>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types="dist/types/type" />
|
|
4
|
-
import { IncomingMessage } from 'http';
|
|
5
|
-
import { type Readable } from 'stream';
|
|
6
|
-
import { RenderFunction, SSRServerContext } from '../type';
|
|
7
|
-
export declare function ssrCache(req: IncomingMessage, render: RenderFunction, ssrContext: SSRServerContext): Promise<string | Readable>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types="dist/types/type" />
|
|
4
|
-
import { IncomingMessage } from 'http';
|
|
5
|
-
import { Readable } from 'stream';
|
|
6
|
-
import { CacheControl, Container } from '@modern-js/types';
|
|
7
|
-
import { RenderFunction, SSRServerContext } from '../type';
|
|
8
|
-
export declare class CacheManager {
|
|
9
|
-
private container;
|
|
10
|
-
constructor(container: Container<string, string>);
|
|
11
|
-
getCacheResult(req: IncomingMessage, cacheControl: CacheControl, render: RenderFunction, ssrContext: SSRServerContext): Promise<string | Readable>;
|
|
12
|
-
private processCache;
|
|
13
|
-
private computedKey;
|
|
14
|
-
}
|