@modern-js/prod-server 2.40.0 → 2.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/libs/hook-api/index.js +2 -1
- package/dist/cjs/libs/hook-api/index.worker.js +2 -1
- package/dist/cjs/server/modernServer.js +1 -1
- package/dist/cjs/workerServer.js +34 -10
- package/dist/esm/libs/hook-api/index.js +2 -1
- package/dist/esm/libs/hook-api/index.worker.js +2 -1
- package/dist/esm/server/modernServer.js +1 -1
- package/dist/esm/workerServer.js +75 -13
- package/dist/esm-node/libs/hook-api/index.js +2 -1
- package/dist/esm-node/libs/hook-api/index.worker.js +2 -1
- package/dist/esm-node/server/modernServer.js +1 -1
- package/dist/esm-node/workerServer.js +34 -10
- package/dist/types/constants.d.ts +20 -20
- package/dist/types/index.d.ts +1 -1
- package/dist/types/libs/context/context.d.ts +50 -50
- package/dist/types/libs/context/index.d.ts +1 -1
- package/dist/types/libs/hook-api/base.d.ts +43 -43
- package/dist/types/libs/hook-api/index.d.ts +3 -3
- package/dist/types/libs/hook-api/index.worker.d.ts +13 -13
- package/dist/types/libs/hook-api/route.d.ts +8 -8
- package/dist/types/libs/hook-api/template.d.ts +18 -18
- package/dist/types/libs/hook-api/templateForStream.d.ts +6 -11
- package/dist/types/libs/loadConfig.d.ts +5 -9
- package/dist/types/libs/metrics.d.ts +1 -1
- package/dist/types/libs/preload/flushServerHeader.d.ts +6 -12
- package/dist/types/libs/preload/index.d.ts +1 -1
- package/dist/types/libs/preload/parseLinks.d.ts +9 -13
- package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +1 -1
- package/dist/types/libs/preload/transformLinks2String.d.ts +1 -1
- package/dist/types/libs/proxy.d.ts +3 -3
- package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +1 -1
- package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +1 -1
- package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +58 -58
- package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +23 -23
- package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +101 -101
- package/dist/types/libs/render/cache/index.d.ts +1 -1
- package/dist/types/libs/render/cache/page-caches/index.d.ts +1 -1
- package/dist/types/libs/render/cache/page-caches/lru.d.ts +12 -12
- package/dist/types/libs/render/cache/spr.d.ts +16 -16
- package/dist/types/libs/render/cache/type.d.ts +33 -33
- package/dist/types/libs/render/cache/util.d.ts +3 -3
- package/dist/types/libs/render/index.d.ts +11 -11
- package/dist/types/libs/render/measure.d.ts +6 -6
- package/dist/types/libs/render/reader.d.ts +13 -13
- package/dist/types/libs/render/ssr.d.ts +9 -9
- package/dist/types/libs/render/static.d.ts +1 -1
- package/dist/types/libs/render/type.d.ts +18 -18
- package/dist/types/libs/render/utils.d.ts +1 -1
- package/dist/types/libs/reporter.d.ts +1 -1
- package/dist/types/libs/route/index.d.ts +10 -10
- package/dist/types/libs/route/matcher.d.ts +12 -12
- package/dist/types/libs/route/route.d.ts +11 -11
- package/dist/types/libs/serveFile.d.ts +3 -3
- package/dist/types/libs/serverTiming.d.ts +8 -8
- package/dist/types/renderHtml.d.ts +15 -15
- package/dist/types/server/index.d.ts +46 -48
- package/dist/types/server/modernServer.d.ts +57 -69
- package/dist/types/server/modernServerSplit.d.ts +1 -1
- package/dist/types/type.d.ts +48 -48
- package/dist/types/utils.d.ts +8 -8
- package/dist/types/workerServer.d.ts +45 -44
- package/package.json +14 -14
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ModernServerContext } from '@modern-js/types';
|
|
2
2
|
import { NextFunction, ModernServerHandler } from '../type';
|
|
3
3
|
type Rule = {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
path: string | RegExp;
|
|
5
|
+
target: string;
|
|
6
6
|
};
|
|
7
7
|
export declare const faviconFallbackHandler: ModernServerHandler;
|
|
8
8
|
export declare const createStaticFileHandler: (rules: Rule[], assetPrefix?: string) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
9
|
-
export {};
|
|
9
|
+
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ServerTiming as IServerTiming } from '@modern-js/types';
|
|
2
2
|
interface Res {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
getHeader: (name: string) => number | string | string[] | undefined;
|
|
4
|
+
setHeader: (name: string, value: string) => void;
|
|
5
|
+
set: (name: string, value: any) => this;
|
|
6
6
|
}
|
|
7
7
|
export declare class ServerTiming implements IServerTiming {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
meta: string;
|
|
9
|
+
res: Res;
|
|
10
|
+
constructor(res: Res, meta: string);
|
|
11
|
+
addServeTiming(name: string, dur: number, desc?: string): this;
|
|
12
12
|
}
|
|
13
|
-
export {};
|
|
13
|
+
export {};
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
|
|
3
3
|
import { ModernServerOptions } from './type';
|
|
4
4
|
export interface RenderHtmlOptions {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
14
|
}
|
|
15
15
|
export interface ReturnResponse {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
16
|
+
headers: OutgoingHttpHeaders;
|
|
17
|
+
redirected: boolean;
|
|
18
|
+
status: number;
|
|
19
|
+
url: string;
|
|
20
|
+
body: string;
|
|
21
|
+
}
|
|
@@ -5,51 +5,49 @@ import { IncomingMessage, ServerResponse } from 'http';
|
|
|
5
5
|
import type { ListenOptions } from 'net';
|
|
6
6
|
import { ModernServerOptions, ServerConstructor } from '../type';
|
|
7
7
|
export declare class Server {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
private loadServerEnv;
|
|
55
|
-
}
|
|
8
|
+
options: ModernServerOptions;
|
|
9
|
+
protected serverImpl: ServerConstructor;
|
|
10
|
+
private server;
|
|
11
|
+
private app;
|
|
12
|
+
private runner;
|
|
13
|
+
private serverConfig;
|
|
14
|
+
constructor(options: ModernServerOptions);
|
|
15
|
+
/**
|
|
16
|
+
* 初始化顺序
|
|
17
|
+
* - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
|
|
18
|
+
* - 获取 server runtime config
|
|
19
|
+
* - 设置 context
|
|
20
|
+
* - 创建 hooksRunner
|
|
21
|
+
* - 合并插件,内置插件和 serverConfig 中配置的插件
|
|
22
|
+
* - 执行 config hook
|
|
23
|
+
* - 获取最终的配置
|
|
24
|
+
* - 设置配置到 context
|
|
25
|
+
* - 初始化 server
|
|
26
|
+
* - 执行 prepare hook
|
|
27
|
+
* - 执行 server init
|
|
28
|
+
*/
|
|
29
|
+
init({ disableHttpServer }?: {
|
|
30
|
+
disableHttpServer: boolean;
|
|
31
|
+
}): Promise<this>;
|
|
32
|
+
/**
|
|
33
|
+
* Execute config hooks
|
|
34
|
+
* @param runner
|
|
35
|
+
* @param options
|
|
36
|
+
*/
|
|
37
|
+
private runConfigHook;
|
|
38
|
+
private runPrepareHook;
|
|
39
|
+
private initServerConfig;
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* merge cliConfig and serverConfig
|
|
43
|
+
*/
|
|
44
|
+
private initConfig;
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
listen<T extends number | ListenOptions | undefined>(options: T, listener: any): void;
|
|
47
|
+
getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
|
|
48
|
+
render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
|
|
49
|
+
private createHookRunner;
|
|
50
|
+
private injectContext;
|
|
51
|
+
private initAppContext;
|
|
52
|
+
private loadServerEnv;
|
|
53
|
+
}
|
|
@@ -11,73 +11,61 @@ import { mergeExtension } from '../utils';
|
|
|
11
11
|
import * as reader from '../libs/render/reader';
|
|
12
12
|
type ModernServerAsyncHandler = (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
13
13
|
export declare class ModernServer implements ModernServerInterface {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
71
|
-
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<import("../type").RenderResult | null>;
|
|
72
|
-
protected proxy(): Promise<any>;
|
|
73
|
-
protected warmupSSRBundle(): void;
|
|
74
|
-
protected createContext(req: IncomingMessage, res: ServerResponse, options?: ContextOptions): import("../libs/context").ModernServerContext;
|
|
75
|
-
private routeHandler;
|
|
76
|
-
private isSend;
|
|
77
|
-
private compose;
|
|
78
|
-
private requestHandler;
|
|
79
|
-
private redirect;
|
|
80
|
-
private onError;
|
|
81
|
-
private renderErrorPage;
|
|
14
|
+
pwd: string;
|
|
15
|
+
distDir: string;
|
|
16
|
+
protected workDir: string;
|
|
17
|
+
protected router: RouteMatchManager;
|
|
18
|
+
protected conf: ServerOptions;
|
|
19
|
+
protected handlers: ModernServerAsyncHandler[];
|
|
20
|
+
protected presetRoutes?: ModernRouteInterface[];
|
|
21
|
+
protected runner: ServerHookRunner;
|
|
22
|
+
protected readonly logger: Logger;
|
|
23
|
+
protected readonly metrics: Metrics;
|
|
24
|
+
protected readonly runMode: string;
|
|
25
|
+
protected reader: typeof reader;
|
|
26
|
+
protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
|
|
27
|
+
protected routeRenderHandler: RenderHandler;
|
|
28
|
+
protected readonly staticGenerate: boolean;
|
|
29
|
+
protected readonly metaName?: string;
|
|
30
|
+
private loaderHandler;
|
|
31
|
+
private frameWebHandler;
|
|
32
|
+
private frameAPIHandler;
|
|
33
|
+
private _handler;
|
|
34
|
+
constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget, appContext, }: ModernServerOptions);
|
|
35
|
+
onInit(runner: ServerHookRunner, app: Server): Promise<void>;
|
|
36
|
+
getRenderHandler(): RenderHandler;
|
|
37
|
+
onRepack(_: BuildOptions): void;
|
|
38
|
+
getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
|
|
39
|
+
render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
|
|
40
|
+
createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server<typeof IncomingMessage, typeof ServerResponse>>;
|
|
41
|
+
protected initReader(): void;
|
|
42
|
+
protected onServerChange({ filepath }: {
|
|
43
|
+
filepath: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
protected getRoutes(): ServerRoute[];
|
|
46
|
+
protected addHandler(handler: ModernServerHandler): void;
|
|
47
|
+
protected render404(context: ModernServerContext): void;
|
|
48
|
+
protected prepareLoaderHandler(specs: ServerRoute[], distDir: string): Promise<void>;
|
|
49
|
+
protected prepareFrameHandler(options?: {
|
|
50
|
+
onlyApi: boolean;
|
|
51
|
+
onlyWeb: boolean;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<WebAdapter>;
|
|
54
|
+
protected prepareAPIHandler(extension: APIServerStartInput['config']): Promise<Adapter>;
|
|
55
|
+
protected filterRoutes(routes: ModernRouteInterface[]): ServerRoute[];
|
|
56
|
+
protected setupBeforeProdMiddleware(): Promise<void>;
|
|
57
|
+
protected setupStaticMiddleware(prefix?: string): (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
58
|
+
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
59
|
+
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<import("../type").RenderResult | null>;
|
|
60
|
+
protected proxy(): Promise<any>;
|
|
61
|
+
protected warmupSSRBundle(): void;
|
|
62
|
+
protected createContext(req: IncomingMessage, res: ServerResponse, options?: ContextOptions): import("../libs/context").ModernServerContext;
|
|
63
|
+
private routeHandler;
|
|
64
|
+
private isSend;
|
|
65
|
+
private compose;
|
|
66
|
+
private requestHandler;
|
|
67
|
+
private redirect;
|
|
68
|
+
private onError;
|
|
69
|
+
private renderErrorPage;
|
|
82
70
|
}
|
|
83
|
-
export {};
|
|
71
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ModernServerOptions, ModernServerInterface } from '../type';
|
|
2
|
-
export declare const createProdServer: (options: ModernServerOptions) => ModernServerInterface;
|
|
2
|
+
export declare const createProdServer: (options: ModernServerOptions) => ModernServerInterface;
|
package/dist/types/type.d.ts
CHANGED
|
@@ -8,67 +8,67 @@ import type { ServerPlugin } from '@modern-js/server-core';
|
|
|
8
8
|
import type { Metrics, Logger, NextFunction, ModernServerContext, InternalPlugins, Reporter } from '@modern-js/types';
|
|
9
9
|
import type { ModernRouteInterface } from './libs/route';
|
|
10
10
|
declare module 'http' {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
interface IncomingMessage {
|
|
12
|
+
logger: Logger;
|
|
13
|
+
metrics: Metrics;
|
|
14
|
+
reporter?: Reporter;
|
|
15
|
+
body?: any;
|
|
16
|
+
}
|
|
17
|
+
interface OutgoingMessage {
|
|
18
|
+
set: (key: string, value: any) => this;
|
|
19
|
+
modernFlushedHeaders?: boolean;
|
|
20
|
+
}
|
|
21
21
|
}
|
|
22
22
|
export type ModernServerOptions = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
23
|
+
pwd: string;
|
|
24
|
+
config: ServerOptions;
|
|
25
|
+
plugins?: ServerPlugin[];
|
|
26
|
+
internalPlugins?: InternalPlugins;
|
|
27
|
+
routes?: ModernRouteInterface[];
|
|
28
|
+
staticGenerate?: boolean;
|
|
29
|
+
logger?: Logger;
|
|
30
|
+
metrics?: Metrics;
|
|
31
|
+
apiOnly?: boolean;
|
|
32
|
+
ssrOnly?: boolean;
|
|
33
|
+
webOnly?: boolean;
|
|
34
|
+
runMode?: string;
|
|
35
|
+
appContext?: {
|
|
36
|
+
appDirectory?: string;
|
|
37
|
+
sharedDirectory: string;
|
|
38
|
+
apiDirectory: string;
|
|
39
|
+
lambdaDirectory: string;
|
|
40
|
+
metaName: string;
|
|
41
|
+
};
|
|
42
|
+
serverConfigFile?: string;
|
|
43
|
+
proxyTarget?: any;
|
|
44
44
|
};
|
|
45
45
|
export type RenderResult = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
content: string | Buffer;
|
|
47
|
+
contentType: string;
|
|
48
|
+
contentStream?: Readable;
|
|
49
|
+
statusCode?: number;
|
|
50
|
+
redirect?: boolean;
|
|
51
51
|
};
|
|
52
52
|
export type ConfWithBFF = {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
bff?: {
|
|
54
|
+
prefix: string;
|
|
55
|
+
} & ServerOptions['bff'];
|
|
56
56
|
};
|
|
57
57
|
export type Then<T> = T extends PromiseLike<infer U> ? U : T;
|
|
58
58
|
export type ServerHookRunner = Then<ReturnType<typeof serverManager.init>>;
|
|
59
59
|
export type BuildOptions = {
|
|
60
|
-
|
|
60
|
+
routes?: ModernRouteInterface[];
|
|
61
61
|
};
|
|
62
62
|
export type { Metrics, Logger, NextFunction };
|
|
63
63
|
export type HookNames = 'afterMatch' | 'afterRender';
|
|
64
64
|
export interface ModernServerInterface {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
pwd: string;
|
|
66
|
+
distDir: string;
|
|
67
|
+
onInit: (runner: ServerHookRunner, app: Server) => Promise<void>;
|
|
68
|
+
onRepack: (options: BuildOptions) => void;
|
|
69
|
+
getRequestHandler: () => (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
|
|
70
|
+
createHTTPServer: (handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void) => Promise<Server>;
|
|
71
|
+
render: (req: IncomingMessage, res: ServerResponse, url?: string) => Promise<string | Readable | null>;
|
|
72
72
|
}
|
|
73
73
|
export type ServerConstructor = (options: ModernServerOptions) => ModernServerInterface;
|
|
74
|
-
export type ModernServerHandler = (context: ModernServerContext, next: NextFunction) => Promise<void> | void;
|
|
74
|
+
export type ModernServerHandler = (context: ModernServerContext, next: NextFunction) => Promise<void> | void;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
+
/// <reference path="type.d.ts" />
|
|
1
2
|
/// <reference types="node" />
|
|
2
3
|
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types=".dts-temp/x-wr1AtAisepvCMvqMiIW/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;
|
|
7
7
|
export declare const mergeExtension: (users: any[]) => {
|
|
8
|
-
|
|
8
|
+
middleware: any[];
|
|
9
9
|
};
|
|
10
10
|
export declare const noop: () => void;
|
|
11
11
|
export declare const createErrorDocument: (status: number, text: string) => string;
|
|
12
12
|
export type CollectMiddlewaresResult = {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
web: any[];
|
|
14
|
+
api: any[];
|
|
15
15
|
};
|
|
16
16
|
export declare const createMiddlewareCollecter: () => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
getMiddlewares: () => CollectMiddlewaresResult;
|
|
18
|
+
addWebMiddleware: (input: any) => void;
|
|
19
|
+
addAPIMiddleware: (input: any) => void;
|
|
20
20
|
};
|
|
21
21
|
export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig, prefix?: string) => RegExp;
|
|
22
22
|
export declare const prepareFavicons: (favicon: string | undefined, faviconByEntries?: Record<string, string | undefined>) => string[];
|
|
23
23
|
export declare const headersWithoutCookie: (headers: IncomingMessage['headers']) => import("http").IncomingHttpHeaders;
|
|
24
|
-
export declare const isRedirect: (code: number) => boolean;
|
|
24
|
+
export declare const isRedirect: (code: number) => boolean;
|
|
@@ -1,58 +1,59 @@
|
|
|
1
|
-
import { AfterMatchContext, AfterRenderContext, MiddlewareContext, NextFunction } from '@modern-js/types';
|
|
1
|
+
import type { AfterMatchContext, AfterRenderContext, MiddlewareContext, NextFunction } from '@modern-js/types';
|
|
2
2
|
import { ModernRouteInterface } from './libs/route';
|
|
3
3
|
export type Context = Record<string, any>;
|
|
4
4
|
export interface HandlerOptions {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
request: Request;
|
|
6
|
+
loadableStats: Record<string, any>;
|
|
7
|
+
routeManifest: Record<string, any>;
|
|
8
8
|
}
|
|
9
9
|
export declare class ReturnResponse {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
body: string;
|
|
11
|
+
status: number;
|
|
12
|
+
headers: Headers;
|
|
13
|
+
constructor(body: string, status: number, headers?: Record<string, any>);
|
|
14
|
+
/**
|
|
15
|
+
* Iterate a Object
|
|
16
|
+
* 1. adds the value if the key does not already exist.
|
|
17
|
+
* 2. append the value if the key does already exist.
|
|
18
|
+
*
|
|
19
|
+
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
|
|
20
|
+
* @param headers
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
appendHeaders(headers: Record<string, any>): this;
|
|
24
|
+
/**
|
|
25
|
+
* Iterate a Object
|
|
26
|
+
* 1. adds the value if the key does not already exist.
|
|
27
|
+
* 2. modify the value if the key does already exist.
|
|
28
|
+
*
|
|
29
|
+
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
|
|
30
|
+
* @param headers
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
setHeaders(headers: Record<string, any>): this;
|
|
34
34
|
}
|
|
35
35
|
type Middleware = (context: MiddlewareContext<'worker'>, next: NextFunction) => Promise<void> | void;
|
|
36
36
|
type ServerHooks = {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
middleware?: Middleware | Middleware[];
|
|
38
|
+
afterRender?: (ctx: AfterRenderContext, next: unknown) => Promise<void> | void;
|
|
39
|
+
afterMatch?: (ctx: AfterMatchContext, next: unknown) => Promise<void> | void;
|
|
40
40
|
};
|
|
41
41
|
type Page = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
entryName: string;
|
|
43
|
+
template: string;
|
|
44
|
+
serverHooks?: ServerHooks;
|
|
45
|
+
serverRender?: (ctx: Record<string, any>) => Promise<string>;
|
|
46
46
|
};
|
|
47
47
|
export type Manifest = {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
/**
|
|
49
|
+
* @param key - path
|
|
50
|
+
*/
|
|
51
|
+
pages: Record<string, Page>;
|
|
52
|
+
routes: ModernRouteInterface[];
|
|
53
|
+
options?: {
|
|
54
|
+
forceCSR?: boolean;
|
|
55
|
+
metaName?: string;
|
|
56
|
+
};
|
|
56
57
|
};
|
|
57
58
|
export declare const createHandler: (manifest: Manifest) => (options: HandlerOptions) => Promise<ReturnResponse>;
|
|
58
|
-
export {};
|
|
59
|
+
export {};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.42.0",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -63,24 +63,24 @@
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@swc/helpers": "0.5.
|
|
67
|
-
"cookie": "
|
|
66
|
+
"@swc/helpers": "0.5.3",
|
|
67
|
+
"cookie": "0.5.0",
|
|
68
68
|
"etag": "^1.8.1",
|
|
69
69
|
"fresh": "^0.5.2",
|
|
70
|
-
"http-proxy-middleware": "^2.0.
|
|
70
|
+
"http-proxy-middleware": "^2.0.4",
|
|
71
71
|
"ignore-styles": "^5.0.1",
|
|
72
72
|
"lru-cache": "^6.0.0",
|
|
73
73
|
"merge-deep": "^3.0.3",
|
|
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/
|
|
79
|
-
"@modern-js/
|
|
80
|
-
"@modern-js/runtime-utils": "2.
|
|
77
|
+
"@modern-js/plugin": "2.42.0",
|
|
78
|
+
"@modern-js/utils": "2.42.0",
|
|
79
|
+
"@modern-js/server-core": "2.42.0",
|
|
80
|
+
"@modern-js/runtime-utils": "2.42.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@types/cookie": "
|
|
83
|
+
"@types/cookie": "0.5.1",
|
|
84
84
|
"@types/etag": "^1.8.1",
|
|
85
85
|
"@types/fresh": "^0.5.0",
|
|
86
86
|
"@types/jest": "^29",
|
|
@@ -89,17 +89,17 @@
|
|
|
89
89
|
"@types/node": "^14",
|
|
90
90
|
"@types/serve-static": "^1.13.10",
|
|
91
91
|
"@types/ws": "^8.5.5",
|
|
92
|
-
"axios": "^1.
|
|
92
|
+
"axios": "^1.6.0",
|
|
93
93
|
"jest": "^29",
|
|
94
94
|
"memfs": "^3.5.1",
|
|
95
95
|
"node-mocks-http": "^1.11.0",
|
|
96
96
|
"portfinder": "^1.0.28",
|
|
97
97
|
"typescript": "^5",
|
|
98
98
|
"ws": "^8.13.0",
|
|
99
|
-
"@modern-js/server-core": "2.
|
|
100
|
-
"@modern-js/types": "2.
|
|
101
|
-
"@scripts/build": "2.
|
|
102
|
-
"@scripts/jest-config": "2.
|
|
99
|
+
"@modern-js/server-core": "2.42.0",
|
|
100
|
+
"@modern-js/types": "2.42.0",
|
|
101
|
+
"@scripts/build": "2.42.0",
|
|
102
|
+
"@scripts/jest-config": "2.42.0"
|
|
103
103
|
},
|
|
104
104
|
"sideEffects": false,
|
|
105
105
|
"publishConfig": {
|