@modern-js/prod-server 2.21.1 → 2.22.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/CHANGELOG.md +33 -0
- package/dist/cjs/constants.js +15 -5
- package/dist/cjs/index.js +12 -4
- package/dist/cjs/libs/context/context.js +3 -1
- package/dist/cjs/libs/context/index.js +6 -2
- package/dist/cjs/libs/hook-api/base.js +88 -0
- package/dist/cjs/libs/hook-api/index.js +17 -79
- package/dist/cjs/libs/hook-api/index.worker.js +109 -0
- package/dist/cjs/libs/hook-api/route.js +3 -1
- package/dist/cjs/libs/hook-api/template.js +6 -26
- package/dist/cjs/libs/hook-api/templateForStream.js +35 -0
- package/dist/cjs/libs/loadConfig.js +9 -3
- package/dist/cjs/libs/logger.js +6 -2
- package/dist/cjs/libs/metrics.js +3 -1
- package/dist/cjs/libs/proxy.js +6 -2
- package/dist/cjs/libs/render/cache/__tests__/cacheable.js +3 -1
- package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +3 -1
- package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +3 -1
- package/dist/cjs/libs/render/cache/index.js +3 -1
- package/dist/cjs/libs/render/cache/page-caches/index.js +3 -1
- package/dist/cjs/libs/render/cache/page-caches/lru.js +3 -1
- package/dist/cjs/libs/render/cache/spr.js +6 -2
- package/dist/cjs/libs/render/cache/util.js +24 -8
- package/dist/cjs/libs/render/index.js +3 -4
- package/dist/cjs/libs/render/measure.js +6 -2
- package/dist/cjs/libs/render/reader.js +32 -19
- package/dist/cjs/libs/render/ssr.js +3 -1
- package/dist/cjs/libs/render/static.js +3 -1
- package/dist/cjs/libs/render/type.js +3 -1
- package/dist/cjs/libs/render/utils.js +8 -3
- package/dist/cjs/libs/route/index.js +6 -2
- package/dist/cjs/libs/route/matcher.js +3 -1
- package/dist/cjs/libs/route/route.js +3 -1
- package/dist/cjs/libs/serveFile.js +6 -2
- package/dist/cjs/renderHtml.js +75 -0
- package/dist/cjs/server/index.js +9 -3
- package/dist/cjs/server/modernServer.js +21 -16
- package/dist/cjs/server/modernServerSplit.js +3 -1
- package/dist/cjs/utils.js +27 -9
- package/dist/cjs/workerServer.js +90 -9
- package/dist/esm/libs/hook-api/base.js +104 -0
- package/dist/esm/libs/hook-api/index.js +5 -109
- package/dist/esm/libs/hook-api/index.worker.js +105 -0
- package/dist/esm/libs/hook-api/template.js +1 -28
- package/dist/esm/libs/hook-api/templateForStream.js +28 -0
- package/dist/esm/libs/render/index.js +1 -4
- package/dist/esm/libs/render/reader.js +26 -26
- package/dist/esm/libs/render/utils.js +2 -1
- package/dist/esm/renderHtml.js +141 -0
- package/dist/esm/server/index.js +11 -1
- package/dist/esm/server/modernServer.js +45 -37
- package/dist/esm/workerServer.js +98 -8
- package/dist/esm-node/libs/hook-api/base.js +68 -0
- package/dist/esm-node/libs/hook-api/index.js +5 -74
- package/dist/esm-node/libs/hook-api/index.worker.js +84 -0
- package/dist/esm-node/libs/hook-api/template.js +1 -25
- package/dist/esm-node/libs/hook-api/templateForStream.js +25 -0
- package/dist/esm-node/libs/render/index.js +1 -4
- package/dist/esm-node/libs/render/reader.js +14 -11
- package/dist/esm-node/libs/render/utils.js +2 -1
- package/dist/esm-node/renderHtml.js +71 -0
- package/dist/esm-node/server/index.js +6 -2
- package/dist/esm-node/server/modernServer.js +18 -15
- package/dist/esm-node/workerServer.js +84 -7
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/hook-api/base.d.ts +53 -0
- package/dist/types/libs/hook-api/index.worker.d.ts +18 -0
- package/dist/types/libs/hook-api/template.d.ts +11 -14
- package/dist/types/libs/hook-api/templateForStream.d.ts +13 -0
- package/dist/types/libs/render/reader.d.ts +4 -2
- package/dist/types/renderHtml.d.ts +21 -0
- package/dist/types/server/index.d.ts +5 -1
- package/dist/types/server/modernServer.d.ts +4 -3
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/workerServer.d.ts +19 -8
- package/package.json +21 -7
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { IFs } from 'memfs';
|
|
2
3
|
export declare class LruReader {
|
|
3
4
|
private readonly cache;
|
|
5
|
+
private fs;
|
|
4
6
|
constructor();
|
|
5
|
-
init(): void;
|
|
7
|
+
init(fs?: IFs): void;
|
|
6
8
|
close(): void;
|
|
7
9
|
read(filepath: string): Promise<{
|
|
8
10
|
content: Buffer;
|
|
@@ -14,5 +16,5 @@ export declare class LruReader {
|
|
|
14
16
|
}
|
|
15
17
|
export declare const readFile: (filepath: string) => Promise<Buffer | undefined>;
|
|
16
18
|
export declare const updateFile: () => void;
|
|
17
|
-
export declare const init: () => void;
|
|
19
|
+
export declare const init: (fs?: IFs) => void;
|
|
18
20
|
export declare const close: () => void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
|
|
3
|
+
import { ModernServerOptions } from './type';
|
|
4
|
+
export interface RenderHtmlOptions {
|
|
5
|
+
/** request url */
|
|
6
|
+
url: string;
|
|
7
|
+
/** request method */
|
|
8
|
+
method?: string;
|
|
9
|
+
/** request headers */
|
|
10
|
+
headers?: IncomingHttpHeaders;
|
|
11
|
+
/** request body */
|
|
12
|
+
body?: string;
|
|
13
|
+
serverOptions: ModernServerOptions;
|
|
14
|
+
}
|
|
15
|
+
export interface ReturnResponse {
|
|
16
|
+
headers: OutgoingHttpHeaders;
|
|
17
|
+
redirected: boolean;
|
|
18
|
+
status: number;
|
|
19
|
+
url: string;
|
|
20
|
+
body: string;
|
|
21
|
+
}
|
|
@@ -26,7 +26,11 @@ export declare class Server {
|
|
|
26
26
|
* - 执行 prepare hook
|
|
27
27
|
* - 执行 server init
|
|
28
28
|
*/
|
|
29
|
-
init(
|
|
29
|
+
init({
|
|
30
|
+
disableHttpServer
|
|
31
|
+
}?: {
|
|
32
|
+
disableHttpServer: boolean;
|
|
33
|
+
}): Promise<this>;
|
|
30
34
|
/**
|
|
31
35
|
* Execute config hooks
|
|
32
36
|
* @param runner
|
|
@@ -42,14 +42,15 @@ export declare class ModernServer implements ModernServerInterface {
|
|
|
42
42
|
}: ModernServerOptions);
|
|
43
43
|
onInit(runner: ServerHookRunner, app: Server): Promise<void>;
|
|
44
44
|
onRepack(_: BuildOptions): void;
|
|
45
|
+
getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
|
|
46
|
+
render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
|
|
47
|
+
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server<typeof IncomingMessage, typeof ServerResponse>>;
|
|
48
|
+
protected initReader(): void;
|
|
45
49
|
protected onServerChange({
|
|
46
50
|
filepath
|
|
47
51
|
}: {
|
|
48
52
|
filepath: string;
|
|
49
53
|
}): Promise<void>;
|
|
50
|
-
getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
|
|
51
|
-
render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
|
|
52
|
-
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server<typeof IncomingMessage, typeof ServerResponse>>;
|
|
53
54
|
protected getRoutes(): ServerRoute[];
|
|
54
55
|
protected addHandler(handler: ModernServerHandler): void;
|
|
55
56
|
protected render404(context: ModernServerContext): void;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types=".dts-temp/
|
|
3
|
+
/// <reference types=".dts-temp/3ZBk4sVfhWju-jJlzqgTy/src/type" />
|
|
4
4
|
import { IncomingMessage } from 'http';
|
|
5
5
|
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
|
|
6
6
|
export declare const debug: any;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AfterMatchContext, AfterRenderContext, MiddlewareContext, NextFunction } from '@modern-js/types';
|
|
1
2
|
import { ModernRouteInterface } from './libs/route';
|
|
2
3
|
export type Context = Record<string, any>;
|
|
3
4
|
export interface HandlerOptions {
|
|
@@ -31,14 +32,24 @@ export declare class ReturnResponse {
|
|
|
31
32
|
*/
|
|
32
33
|
setHeaders(headers: Record<string, any>): this;
|
|
33
34
|
}
|
|
35
|
+
type Middleware = (context: MiddlewareContext<'worker'>, next: NextFunction) => Promise<void> | void;
|
|
36
|
+
type ServerHooks = {
|
|
37
|
+
middleware?: Middleware | Middleware[];
|
|
38
|
+
afterRender?: (ctx: AfterRenderContext, next: unknown) => Promise<void> | void;
|
|
39
|
+
afterMatch?: (ctx: AfterMatchContext, next: unknown) => Promise<void> | void;
|
|
40
|
+
};
|
|
41
|
+
type Page = {
|
|
42
|
+
entryName: string;
|
|
43
|
+
template: string;
|
|
44
|
+
serverHooks?: ServerHooks;
|
|
45
|
+
serverRender?: (ctx: Record<string, any>) => Promise<string>;
|
|
46
|
+
};
|
|
34
47
|
export type Manifest = {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
template: string;
|
|
40
|
-
serverRender?: (ctx: Record<string, any>) => Promise<string>;
|
|
41
|
-
}>;
|
|
48
|
+
/**
|
|
49
|
+
* @param key - path
|
|
50
|
+
*/
|
|
51
|
+
pages: Record<string, Page>;
|
|
42
52
|
routes: ModernRouteInterface[];
|
|
43
53
|
};
|
|
44
|
-
export declare const createHandler: (manifest: Manifest) => (options: HandlerOptions) => Promise<ReturnResponse>;
|
|
54
|
+
export declare const createHandler: (manifest: Manifest) => (options: HandlerOptions) => Promise<ReturnResponse>;
|
|
55
|
+
export {};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.22.1",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -38,6 +38,15 @@
|
|
|
38
38
|
},
|
|
39
39
|
"types": "./dist/types/workerServer.d.ts",
|
|
40
40
|
"default": "./dist/esm/workerServer.js"
|
|
41
|
+
},
|
|
42
|
+
"./renderHtml": {
|
|
43
|
+
"node": {
|
|
44
|
+
"jsnext:source": "./src/renderHtml.ts",
|
|
45
|
+
"import": "./dist/esm-node/renderHtml.js",
|
|
46
|
+
"require": "./dist/cjs/renderHtml.js"
|
|
47
|
+
},
|
|
48
|
+
"types": "./dist/types/renderHtml.d.ts",
|
|
49
|
+
"default": "./dist/esm/renderHtml.js"
|
|
41
50
|
}
|
|
42
51
|
},
|
|
43
52
|
"typesVersions": {
|
|
@@ -47,6 +56,9 @@
|
|
|
47
56
|
],
|
|
48
57
|
"worker": [
|
|
49
58
|
"./dist/types/workerServer.d.ts"
|
|
59
|
+
],
|
|
60
|
+
"renderHtml": [
|
|
61
|
+
"./dist/types/renderHtml.d.ts"
|
|
50
62
|
]
|
|
51
63
|
}
|
|
52
64
|
},
|
|
@@ -61,8 +73,9 @@
|
|
|
61
73
|
"path-to-regexp": "^6.2.0",
|
|
62
74
|
"serve-static": "^1.14.1",
|
|
63
75
|
"@swc/helpers": "0.5.1",
|
|
64
|
-
"@modern-js/utils": "2.
|
|
65
|
-
"@modern-js/server-core": "2.
|
|
76
|
+
"@modern-js/utils": "2.22.1",
|
|
77
|
+
"@modern-js/server-core": "2.22.1",
|
|
78
|
+
"@modern-js/plugin": "2.22.1"
|
|
66
79
|
},
|
|
67
80
|
"devDependencies": {
|
|
68
81
|
"@types/cookie": "^0.4.1",
|
|
@@ -78,10 +91,11 @@
|
|
|
78
91
|
"node-mocks-http": "^1.11.0",
|
|
79
92
|
"portfinder": "^1.0.28",
|
|
80
93
|
"typescript": "^5",
|
|
81
|
-
"
|
|
82
|
-
"@modern-js/
|
|
83
|
-
"@
|
|
84
|
-
"@scripts/
|
|
94
|
+
"memfs": "^3.5.1",
|
|
95
|
+
"@modern-js/types": "2.22.1",
|
|
96
|
+
"@modern-js/server-core": "2.22.1",
|
|
97
|
+
"@scripts/jest-config": "2.22.1",
|
|
98
|
+
"@scripts/build": "2.22.1"
|
|
85
99
|
},
|
|
86
100
|
"sideEffects": false,
|
|
87
101
|
"publishConfig": {
|