@modern-js/prod-server 2.47.1 → 2.48.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/libs/context/context.js +4 -8
- package/dist/cjs/libs/hook-api/base.js +0 -11
- package/dist/cjs/libs/hook-api/index.worker.js +0 -3
- package/dist/cjs/libs/hook-api/route.js +0 -4
- package/dist/cjs/libs/hook-api/template.js +0 -2
- package/dist/cjs/libs/render/ssr.js +7 -3
- package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -5
- package/dist/cjs/libs/render/ssrCache/index.js +10 -3
- package/dist/cjs/libs/render/ssrCache/manager.js +25 -11
- package/dist/cjs/libs/route/index.js +1 -3
- package/dist/cjs/libs/route/matcher.js +1 -5
- package/dist/cjs/libs/route/route.js +1 -10
- package/dist/cjs/libs/serverTiming.js +0 -3
- package/dist/cjs/renderHtml.js +0 -7
- package/dist/cjs/server/index.js +1 -7
- package/dist/cjs/server/modernServer.js +11 -21
- package/dist/cjs/workerServer.js +4 -8
- package/dist/esm/libs/context/context.js +66 -98
- package/dist/esm/libs/hook-api/base.js +36 -71
- package/dist/esm/libs/hook-api/index.worker.js +15 -29
- package/dist/esm/libs/hook-api/route.js +12 -27
- package/dist/esm/libs/hook-api/template.js +33 -61
- package/dist/esm/libs/render/ssr.js +8 -4
- package/dist/esm/libs/render/ssrCache/cacheMod.js +10 -18
- package/dist/esm/libs/render/ssrCache/index.js +40 -21
- package/dist/esm/libs/render/ssrCache/manager.js +149 -141
- package/dist/esm/libs/route/index.js +62 -96
- package/dist/esm/libs/route/matcher.js +58 -94
- package/dist/esm/libs/route/route.js +1 -10
- package/dist/esm/libs/serverTiming.js +8 -16
- package/dist/esm/renderHtml.js +22 -39
- package/dist/esm/server/index.js +307 -383
- package/dist/esm/server/modernServer.js +802 -936
- package/dist/esm/server/modernServerSplit.js +61 -86
- package/dist/esm/workerServer.js +87 -82
- package/dist/esm-node/libs/context/context.js +4 -8
- package/dist/esm-node/libs/hook-api/base.js +0 -11
- package/dist/esm-node/libs/hook-api/index.worker.js +0 -3
- package/dist/esm-node/libs/hook-api/route.js +0 -4
- package/dist/esm-node/libs/hook-api/template.js +0 -2
- package/dist/esm-node/libs/render/ssr.js +7 -3
- package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -5
- package/dist/esm-node/libs/render/ssrCache/index.js +10 -3
- package/dist/esm-node/libs/render/ssrCache/manager.js +25 -11
- package/dist/esm-node/libs/route/index.js +1 -3
- package/dist/esm-node/libs/route/matcher.js +1 -5
- package/dist/esm-node/libs/route/route.js +1 -10
- package/dist/esm-node/libs/serverTiming.js +0 -3
- package/dist/esm-node/renderHtml.js +0 -7
- package/dist/esm-node/server/index.js +1 -7
- package/dist/esm-node/server/modernServer.js +11 -21
- package/dist/esm-node/workerServer.js +4 -8
- package/dist/types/libs/render/ssrCache/index.d.ts +2 -3
- package/dist/types/libs/render/ssrCache/manager.d.ts +7 -1
- package/dist/types/type.d.ts +1 -0
- package/package.json +8 -8
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
import { RouteMatcher } from "./matcher";
|
|
3
2
|
class RouteMatchManager {
|
|
4
3
|
// get all routes matches pathname
|
|
@@ -49,8 +48,7 @@ class RouteMatchManager {
|
|
|
49
48
|
return bundles;
|
|
50
49
|
}
|
|
51
50
|
constructor() {
|
|
52
|
-
|
|
53
|
-
_define_property(this, "specs", []);
|
|
51
|
+
this.specs = [];
|
|
54
52
|
this.matchers = [];
|
|
55
53
|
}
|
|
56
54
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
import { match, pathToRegexp, compile } from "path-to-regexp";
|
|
3
2
|
import { ModernRoute } from "./route";
|
|
4
3
|
const removeTailSlash = (s) => s.replace(/\/+$/, "");
|
|
@@ -80,10 +79,7 @@ class RouteMatcher {
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
constructor(spec) {
|
|
83
|
-
|
|
84
|
-
_define_property(this, "urlPath", "");
|
|
85
|
-
_define_property(this, "urlMatcher", void 0);
|
|
86
|
-
_define_property(this, "urlReg", void 0);
|
|
82
|
+
this.urlPath = "";
|
|
87
83
|
this.spec = spec;
|
|
88
84
|
this.setupUrlPath();
|
|
89
85
|
}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
class ModernRoute {
|
|
3
2
|
constructor(routeSpec) {
|
|
4
|
-
|
|
5
|
-
_define_property(this, "urlPath", void 0);
|
|
6
|
-
_define_property(this, "entryPath", void 0);
|
|
7
|
-
_define_property(this, "bundle", void 0);
|
|
8
|
-
_define_property(this, "isApi", void 0);
|
|
9
|
-
_define_property(this, "isSSR", void 0);
|
|
10
|
-
_define_property(this, "isSPA", void 0);
|
|
11
|
-
_define_property(this, "params", {});
|
|
12
|
-
_define_property(this, "responseHeaders", void 0);
|
|
3
|
+
this.params = {};
|
|
13
4
|
this.entryName = routeSpec.entryName || "";
|
|
14
5
|
this.urlPath = routeSpec.urlPath;
|
|
15
6
|
this.entryPath = routeSpec.entryPath || "";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
const SERVER_TIMING = "Server-Timing";
|
|
3
2
|
class ServerTiming {
|
|
4
3
|
addServeTiming(name, dur, desc) {
|
|
@@ -9,8 +8,6 @@ class ServerTiming {
|
|
|
9
8
|
return this;
|
|
10
9
|
}
|
|
11
10
|
constructor(res, meta) {
|
|
12
|
-
_define_property(this, "meta", void 0);
|
|
13
|
-
_define_property(this, "res", void 0);
|
|
14
11
|
this.meta = meta;
|
|
15
12
|
this.res = res;
|
|
16
13
|
}
|
|
@@ -2,7 +2,6 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
2
2
|
var __commonJS = (cb, mod) => function __require() {
|
|
3
3
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
4
4
|
};
|
|
5
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
6
5
|
import { OutgoingMessage } from "http";
|
|
7
6
|
import { Readable } from "stream";
|
|
8
7
|
import { Socket } from "net";
|
|
@@ -13,10 +12,6 @@ var require_renderHtml = __commonJS({
|
|
|
13
12
|
class IncomingMessageLike extends Readable {
|
|
14
13
|
constructor({ method, url, headers }) {
|
|
15
14
|
super();
|
|
16
|
-
_define_property(this, "headers", void 0);
|
|
17
|
-
_define_property(this, "method", void 0);
|
|
18
|
-
_define_property(this, "url", void 0);
|
|
19
|
-
_define_property(this, "socket", void 0);
|
|
20
15
|
this.socket = new Socket();
|
|
21
16
|
this.headers = headers || {};
|
|
22
17
|
this.headers.host = "localhost:8080";
|
|
@@ -33,8 +28,6 @@ var require_renderHtml = __commonJS({
|
|
|
33
28
|
}
|
|
34
29
|
constructor() {
|
|
35
30
|
super();
|
|
36
|
-
_define_property(this, "statusCode", void 0);
|
|
37
|
-
_define_property(this, "data", void 0);
|
|
38
31
|
this.statusCode = 200;
|
|
39
32
|
this.data = [];
|
|
40
33
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
import path from "path";
|
|
3
2
|
import { fs, createLogger, SHARED_DIR, OUTPUT_CONFIG_FILE, dotenv, dotenvExpand, INTERNAL_SERVER_PLUGINS, ensureAbsolutePath } from "@modern-js/utils";
|
|
4
3
|
import { serverManager, AppContext, ConfigContext, loadPlugins } from "@modern-js/server-core";
|
|
@@ -176,12 +175,7 @@ class Server {
|
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
constructor(options) {
|
|
179
|
-
|
|
180
|
-
_define_property(this, "serverImpl", createProdServer);
|
|
181
|
-
_define_property(this, "server", void 0);
|
|
182
|
-
_define_property(this, "app", void 0);
|
|
183
|
-
_define_property(this, "runner", void 0);
|
|
184
|
-
_define_property(this, "serverConfig", void 0);
|
|
178
|
+
this.serverImpl = createProdServer;
|
|
185
179
|
options.logger = options.logger || createLogger({
|
|
186
180
|
level: "warn"
|
|
187
181
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
import { createServer } from "http";
|
|
3
2
|
import path from "path";
|
|
4
3
|
import { fs, isProd, isPromise, isWebOnly, mime, ROUTE_SPEC_FILE } from "@modern-js/utils";
|
|
@@ -327,7 +326,13 @@ class ModernServer {
|
|
|
327
326
|
if (!renderResult) {
|
|
328
327
|
return;
|
|
329
328
|
}
|
|
330
|
-
const { contentStream: responseStream } = renderResult;
|
|
329
|
+
const { contentStream: responseStream, headers } = renderResult;
|
|
330
|
+
if (headers) {
|
|
331
|
+
for (const name in headers) {
|
|
332
|
+
const value = headers[name];
|
|
333
|
+
res.setHeader(name, value);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
331
336
|
let { content: response } = renderResult;
|
|
332
337
|
if (route.entryName && responseStream) {
|
|
333
338
|
responseStream.pipe(res);
|
|
@@ -458,25 +463,10 @@ class ModernServer {
|
|
|
458
463
|
context.res.end(createErrorDocument(status, text));
|
|
459
464
|
}
|
|
460
465
|
constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget, appContext }) {
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
_define_property(this, "conf", void 0);
|
|
466
|
-
_define_property(this, "handlers", []);
|
|
467
|
-
_define_property(this, "presetRoutes", void 0);
|
|
468
|
-
_define_property(this, "runner", void 0);
|
|
469
|
-
_define_property(this, "logger", void 0);
|
|
470
|
-
_define_property(this, "metrics", void 0);
|
|
471
|
-
_define_property(this, "runMode", void 0);
|
|
472
|
-
_define_property(this, "proxyTarget", void 0);
|
|
473
|
-
_define_property(this, "routeRenderHandler", void 0);
|
|
474
|
-
_define_property(this, "staticGenerate", void 0);
|
|
475
|
-
_define_property(this, "metaName", void 0);
|
|
476
|
-
_define_property(this, "loaderHandler", null);
|
|
477
|
-
_define_property(this, "frameWebHandler", null);
|
|
478
|
-
_define_property(this, "frameAPIHandler", null);
|
|
479
|
-
_define_property(this, "_handler", void 0);
|
|
466
|
+
this.handlers = [];
|
|
467
|
+
this.loaderHandler = null;
|
|
468
|
+
this.frameWebHandler = null;
|
|
469
|
+
this.frameAPIHandler = null;
|
|
480
470
|
require("ignore-styles");
|
|
481
471
|
this.pwd = pwd;
|
|
482
472
|
this.distDir = path.resolve(pwd, config.output.path || "dist");
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
1
|
import { createAsyncPipeline } from "@modern-js/plugin";
|
|
3
2
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
|
|
4
3
|
import { RouteMatchManager } from "./libs/route";
|
|
@@ -51,9 +50,6 @@ class ReturnResponse {
|
|
|
51
50
|
return this;
|
|
52
51
|
}
|
|
53
52
|
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
53
|
this.body = body;
|
|
58
54
|
this.status = status;
|
|
59
55
|
this.headers = new Headers(headers);
|
|
@@ -103,7 +99,7 @@ const createHandler = (manifest) => {
|
|
|
103
99
|
const route = pageMatch.generate(url.pathname);
|
|
104
100
|
const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
|
|
105
101
|
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);
|
|
102
|
+
await (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
103
|
if (checkIsSent(hookContext)) {
|
|
108
104
|
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
109
105
|
}
|
|
@@ -152,7 +148,7 @@ const createHandler = (manifest) => {
|
|
|
152
148
|
};
|
|
153
149
|
const body = await page.serverRender(serverRenderContext);
|
|
154
150
|
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);
|
|
151
|
+
await ((_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
152
|
if (checkIsSent(hookContext)) {
|
|
157
153
|
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
158
154
|
}
|
|
@@ -211,7 +207,7 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
|
211
207
|
};
|
|
212
208
|
}
|
|
213
209
|
let appliedMiddlewares = false;
|
|
214
|
-
function applyMiddlewares(ctx, middleware) {
|
|
210
|
+
async function applyMiddlewares(ctx, middleware) {
|
|
215
211
|
if (middleware) {
|
|
216
212
|
const middlewares = (() => {
|
|
217
213
|
if (Array.isArray(middleware)) {
|
|
@@ -228,7 +224,7 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
228
224
|
});
|
|
229
225
|
appliedMiddlewares = true;
|
|
230
226
|
}
|
|
231
|
-
middlewarePipeline.run(ctx, {
|
|
227
|
+
await middlewarePipeline.run(ctx, {
|
|
232
228
|
onLast: () => void 0
|
|
233
229
|
});
|
|
234
230
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
/// <reference types="node/http" />
|
|
3
2
|
/// <reference types="dist/types/type" />
|
|
4
3
|
import { IncomingMessage } from 'http';
|
|
5
|
-
import { type Readable } from 'stream';
|
|
6
4
|
import { RenderFunction, SSRServerContext } from '../type';
|
|
7
|
-
|
|
5
|
+
import { CacheResult } from './manager';
|
|
6
|
+
export declare function ssrCache(req: IncomingMessage, render: RenderFunction, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
@@ -5,10 +5,16 @@ import { IncomingMessage } from 'http';
|
|
|
5
5
|
import { Readable } from 'stream';
|
|
6
6
|
import { CacheControl, Container } from '@modern-js/types';
|
|
7
7
|
import { RenderFunction, SSRServerContext } from '../type';
|
|
8
|
+
type CacheStatus = 'hit' | 'stale' | 'expired' | 'miss';
|
|
9
|
+
export type CacheResult = {
|
|
10
|
+
data: string | Readable;
|
|
11
|
+
status?: CacheStatus;
|
|
12
|
+
};
|
|
8
13
|
export declare class CacheManager {
|
|
9
14
|
private container;
|
|
10
15
|
constructor(container: Container<string, string>);
|
|
11
|
-
getCacheResult(req: IncomingMessage, cacheControl: CacheControl, render: RenderFunction, ssrContext: SSRServerContext): Promise<
|
|
16
|
+
getCacheResult(req: IncomingMessage, cacheControl: CacheControl, render: RenderFunction, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
12
17
|
private processCache;
|
|
13
18
|
private computedKey;
|
|
14
19
|
}
|
|
20
|
+
export {};
|
package/dist/types/type.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.48.1",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
"node-html-parser": "^6.1.5",
|
|
75
75
|
"path-to-regexp": "^6.2.0",
|
|
76
76
|
"serve-static": "^1.14.1",
|
|
77
|
-
"@modern-js/plugin": "2.
|
|
78
|
-
"@modern-js/server-core": "2.
|
|
79
|
-
"@modern-js/
|
|
80
|
-
"@modern-js/utils": "2.
|
|
77
|
+
"@modern-js/plugin": "2.48.1",
|
|
78
|
+
"@modern-js/server-core": "2.48.1",
|
|
79
|
+
"@modern-js/utils": "2.48.1",
|
|
80
|
+
"@modern-js/runtime-utils": "2.48.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@types/cookie": "0.5.1",
|
|
@@ -95,9 +95,9 @@
|
|
|
95
95
|
"portfinder": "^1.0.28",
|
|
96
96
|
"typescript": "^5",
|
|
97
97
|
"ws": "^8.13.0",
|
|
98
|
-
"@
|
|
99
|
-
"@
|
|
100
|
-
"@scripts/jest-config": "2.
|
|
98
|
+
"@modern-js/types": "2.48.1",
|
|
99
|
+
"@scripts/build": "2.48.1",
|
|
100
|
+
"@scripts/jest-config": "2.48.1"
|
|
101
101
|
},
|
|
102
102
|
"sideEffects": false,
|
|
103
103
|
"publishConfig": {
|