@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.
Files changed (62) hide show
  1. package/dist/cjs/libs/hook-api/index.js +2 -1
  2. package/dist/cjs/libs/hook-api/index.worker.js +2 -1
  3. package/dist/cjs/server/modernServer.js +1 -1
  4. package/dist/cjs/workerServer.js +34 -10
  5. package/dist/esm/libs/hook-api/index.js +2 -1
  6. package/dist/esm/libs/hook-api/index.worker.js +2 -1
  7. package/dist/esm/server/modernServer.js +1 -1
  8. package/dist/esm/workerServer.js +75 -13
  9. package/dist/esm-node/libs/hook-api/index.js +2 -1
  10. package/dist/esm-node/libs/hook-api/index.worker.js +2 -1
  11. package/dist/esm-node/server/modernServer.js +1 -1
  12. package/dist/esm-node/workerServer.js +34 -10
  13. package/dist/types/constants.d.ts +20 -20
  14. package/dist/types/index.d.ts +1 -1
  15. package/dist/types/libs/context/context.d.ts +50 -50
  16. package/dist/types/libs/context/index.d.ts +1 -1
  17. package/dist/types/libs/hook-api/base.d.ts +43 -43
  18. package/dist/types/libs/hook-api/index.d.ts +3 -3
  19. package/dist/types/libs/hook-api/index.worker.d.ts +13 -13
  20. package/dist/types/libs/hook-api/route.d.ts +8 -8
  21. package/dist/types/libs/hook-api/template.d.ts +18 -18
  22. package/dist/types/libs/hook-api/templateForStream.d.ts +6 -11
  23. package/dist/types/libs/loadConfig.d.ts +5 -9
  24. package/dist/types/libs/metrics.d.ts +1 -1
  25. package/dist/types/libs/preload/flushServerHeader.d.ts +6 -12
  26. package/dist/types/libs/preload/index.d.ts +1 -1
  27. package/dist/types/libs/preload/parseLinks.d.ts +9 -13
  28. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +1 -1
  29. package/dist/types/libs/preload/transformLinks2String.d.ts +1 -1
  30. package/dist/types/libs/proxy.d.ts +3 -3
  31. package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +1 -1
  32. package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +1 -1
  33. package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +58 -58
  34. package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +23 -23
  35. package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +101 -101
  36. package/dist/types/libs/render/cache/index.d.ts +1 -1
  37. package/dist/types/libs/render/cache/page-caches/index.d.ts +1 -1
  38. package/dist/types/libs/render/cache/page-caches/lru.d.ts +12 -12
  39. package/dist/types/libs/render/cache/spr.d.ts +16 -16
  40. package/dist/types/libs/render/cache/type.d.ts +33 -33
  41. package/dist/types/libs/render/cache/util.d.ts +3 -3
  42. package/dist/types/libs/render/index.d.ts +11 -11
  43. package/dist/types/libs/render/measure.d.ts +6 -6
  44. package/dist/types/libs/render/reader.d.ts +13 -13
  45. package/dist/types/libs/render/ssr.d.ts +9 -9
  46. package/dist/types/libs/render/static.d.ts +1 -1
  47. package/dist/types/libs/render/type.d.ts +18 -18
  48. package/dist/types/libs/render/utils.d.ts +1 -1
  49. package/dist/types/libs/reporter.d.ts +1 -1
  50. package/dist/types/libs/route/index.d.ts +10 -10
  51. package/dist/types/libs/route/matcher.d.ts +12 -12
  52. package/dist/types/libs/route/route.d.ts +11 -11
  53. package/dist/types/libs/serveFile.d.ts +3 -3
  54. package/dist/types/libs/serverTiming.d.ts +8 -8
  55. package/dist/types/renderHtml.d.ts +15 -15
  56. package/dist/types/server/index.d.ts +46 -48
  57. package/dist/types/server/modernServer.d.ts +57 -69
  58. package/dist/types/server/modernServerSplit.d.ts +1 -1
  59. package/dist/types/type.d.ts +48 -48
  60. package/dist/types/utils.d.ts +8 -8
  61. package/dist/types/workerServer.d.ts +45 -44
  62. 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
- path: string | RegExp;
5
- target: string;
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
- getHeader: (name: string) => number | string | string[] | undefined;
4
- setHeader: (name: string, value: string) => void;
5
- set: (name: string, value: any) => this;
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
- meta: string;
9
- res: Res;
10
- constructor(res: Res, meta: string);
11
- addServeTiming(name: string, dur: number, desc?: string): this;
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
- /** 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;
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
- headers: OutgoingHttpHeaders;
17
- redirected: boolean;
18
- status: number;
19
- url: string;
20
- body: string;
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
- 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({
30
- disableHttpServer
31
- }?: {
32
- disableHttpServer: boolean;
33
- }): Promise<this>;
34
- /**
35
- * Execute config hooks
36
- * @param runner
37
- * @param options
38
- */
39
- private runConfigHook;
40
- private runPrepareHook;
41
- private initServerConfig;
42
- /**
43
- *
44
- * merge cliConfig and serverConfig
45
- */
46
- private initConfig;
47
- close(): Promise<void>;
48
- listen<T extends number | ListenOptions | undefined>(options: T, listener: any): void;
49
- getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
50
- render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
51
- private createHookRunner;
52
- private injectContext;
53
- private initAppContext;
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
- 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({
35
- pwd,
36
- config,
37
- routes,
38
- staticGenerate,
39
- logger,
40
- metrics,
41
- runMode,
42
- proxyTarget,
43
- appContext
44
- }: ModernServerOptions);
45
- onInit(runner: ServerHookRunner, app: Server): Promise<void>;
46
- getRenderHandler(): RenderHandler;
47
- onRepack(_: BuildOptions): void;
48
- getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
49
- render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
50
- createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server<typeof IncomingMessage, typeof ServerResponse>>;
51
- protected initReader(): void;
52
- protected onServerChange({
53
- filepath
54
- }: {
55
- filepath: string;
56
- }): Promise<void>;
57
- protected getRoutes(): ServerRoute[];
58
- protected addHandler(handler: ModernServerHandler): void;
59
- protected render404(context: ModernServerContext): void;
60
- protected prepareLoaderHandler(specs: ServerRoute[], distDir: string): Promise<void>;
61
- protected prepareFrameHandler(options?: {
62
- onlyApi: boolean;
63
- onlyWeb: boolean;
64
- }): Promise<void>;
65
- protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<WebAdapter>;
66
- protected prepareAPIHandler(extension: APIServerStartInput['config']): Promise<Adapter>;
67
- protected filterRoutes(routes: ModernRouteInterface[]): ServerRoute[];
68
- protected setupBeforeProdMiddleware(): Promise<void>;
69
- protected setupStaticMiddleware(prefix?: string): (context: ModernServerContext, next: NextFunction) => Promise<void>;
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;
@@ -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
- 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
- }
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
- 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;
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
- content: string | Buffer;
47
- contentType: string;
48
- contentStream?: Readable;
49
- statusCode?: number;
50
- redirect?: boolean;
46
+ content: string | Buffer;
47
+ contentType: string;
48
+ contentStream?: Readable;
49
+ statusCode?: number;
50
+ redirect?: boolean;
51
51
  };
52
52
  export type ConfWithBFF = {
53
- bff?: {
54
- prefix: string;
55
- } & ServerOptions['bff'];
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
- routes?: ModernRouteInterface[];
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
- 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>;
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;
@@ -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
- middleware: any[];
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
- web: any[];
14
- api: any[];
13
+ web: any[];
14
+ api: any[];
15
15
  };
16
16
  export declare const createMiddlewareCollecter: () => {
17
- getMiddlewares: () => CollectMiddlewaresResult;
18
- addWebMiddleware: (input: any) => void;
19
- addAPIMiddleware: (input: any) => void;
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
- request: Request;
6
- loadableStats: Record<string, any>;
7
- routeManifest: Record<string, any>;
5
+ request: Request;
6
+ loadableStats: Record<string, any>;
7
+ routeManifest: Record<string, any>;
8
8
  }
9
9
  export declare class ReturnResponse {
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;
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
- middleware?: Middleware | Middleware[];
38
- afterRender?: (ctx: AfterRenderContext, next: unknown) => Promise<void> | void;
39
- afterMatch?: (ctx: AfterMatchContext, next: unknown) => Promise<void> | void;
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
- entryName: string;
43
- template: string;
44
- serverHooks?: ServerHooks;
45
- serverRender?: (ctx: Record<string, any>) => Promise<string>;
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
- * @param key - path
50
- */
51
- pages: Record<string, Page>;
52
- routes: ModernRouteInterface[];
53
- options?: {
54
- forceCSR?: boolean;
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.40.0",
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.1",
67
- "cookie": "^0.4.2",
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.1",
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.40.0",
78
- "@modern-js/server-core": "2.40.0",
79
- "@modern-js/utils": "2.40.0",
80
- "@modern-js/runtime-utils": "2.40.0"
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": "^0.4.1",
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.2.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.40.0",
100
- "@modern-js/types": "2.40.0",
101
- "@scripts/build": "2.40.0",
102
- "@scripts/jest-config": "2.40.0"
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": {