@modern-js/prod-server 2.48.6 → 2.49.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 (174) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/route/route.js → error.js} +16 -17
  3. package/dist/cjs/index.js +18 -24
  4. package/dist/cjs/init.js +71 -0
  5. package/dist/cjs/{type.js → types.js} +2 -2
  6. package/dist/esm/error.js +15 -0
  7. package/dist/esm/index.js +53 -19
  8. package/dist/esm/init.js +73 -0
  9. package/dist/esm-node/error.js +14 -0
  10. package/dist/esm-node/index.js +16 -17
  11. package/dist/esm-node/init.js +47 -0
  12. package/dist/types/error.d.ts +6 -0
  13. package/dist/types/index.d.ts +8 -11
  14. package/dist/types/init.d.ts +4 -0
  15. package/dist/types/types.d.ts +14 -0
  16. package/package.json +23 -64
  17. package/dist/cjs/constants.js +0 -72
  18. package/dist/cjs/libs/context/context.js +0 -236
  19. package/dist/cjs/libs/context/index.js +0 -31
  20. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  21. package/dist/cjs/libs/hook-api/base.js +0 -96
  22. package/dist/cjs/libs/hook-api/index.js +0 -85
  23. package/dist/cjs/libs/hook-api/index.worker.js +0 -116
  24. package/dist/cjs/libs/hook-api/route.js +0 -44
  25. package/dist/cjs/libs/hook-api/template.js +0 -72
  26. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  27. package/dist/cjs/libs/loadConfig.js +0 -70
  28. package/dist/cjs/libs/metrics.js +0 -33
  29. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  30. package/dist/cjs/libs/preload/index.js +0 -24
  31. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  32. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  33. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  34. package/dist/cjs/libs/proxy.js +0 -99
  35. package/dist/cjs/libs/render/index.js +0 -109
  36. package/dist/cjs/libs/render/measure.js +0 -74
  37. package/dist/cjs/libs/render/ssr.js +0 -130
  38. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
  39. package/dist/cjs/libs/render/ssrCache/index.js +0 -90
  40. package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
  41. package/dist/cjs/libs/render/static.js +0 -72
  42. package/dist/cjs/libs/render/type.js +0 -33
  43. package/dist/cjs/libs/render/utils.js +0 -41
  44. package/dist/cjs/libs/reporter.js +0 -39
  45. package/dist/cjs/libs/route/index.js +0 -83
  46. package/dist/cjs/libs/route/matcher.js +0 -113
  47. package/dist/cjs/libs/serveFile.js +0 -84
  48. package/dist/cjs/libs/serverTiming.js +0 -41
  49. package/dist/cjs/renderHtml.js +0 -65
  50. package/dist/cjs/server/index.js +0 -223
  51. package/dist/cjs/server/modernServer.js +0 -522
  52. package/dist/cjs/server/modernServerSplit.js +0 -67
  53. package/dist/cjs/utils.js +0 -164
  54. package/dist/cjs/workerServer.js +0 -260
  55. package/dist/esm/constants.js +0 -43
  56. package/dist/esm/libs/context/context.js +0 -260
  57. package/dist/esm/libs/context/index.js +0 -8
  58. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  59. package/dist/esm/libs/hook-api/base.js +0 -73
  60. package/dist/esm/libs/hook-api/index.js +0 -55
  61. package/dist/esm/libs/hook-api/index.worker.js +0 -99
  62. package/dist/esm/libs/hook-api/route.js +0 -26
  63. package/dist/esm/libs/hook-api/template.js +0 -56
  64. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  65. package/dist/esm/libs/loadConfig.js +0 -36
  66. package/dist/esm/libs/metrics.js +0 -9
  67. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  68. package/dist/esm/libs/preload/index.js +0 -2
  69. package/dist/esm/libs/preload/parseLinks.js +0 -172
  70. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  71. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  72. package/dist/esm/libs/proxy.js +0 -160
  73. package/dist/esm/libs/render/index.js +0 -175
  74. package/dist/esm/libs/render/measure.js +0 -69
  75. package/dist/esm/libs/render/ssr.js +0 -133
  76. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
  77. package/dist/esm/libs/render/ssrCache/index.js +0 -170
  78. package/dist/esm/libs/render/ssrCache/manager.js +0 -178
  79. package/dist/esm/libs/render/static.js +0 -100
  80. package/dist/esm/libs/render/type.js +0 -9
  81. package/dist/esm/libs/render/utils.js +0 -16
  82. package/dist/esm/libs/reporter.js +0 -15
  83. package/dist/esm/libs/route/index.js +0 -82
  84. package/dist/esm/libs/route/matcher.js +0 -92
  85. package/dist/esm/libs/route/route.js +0 -17
  86. package/dist/esm/libs/serveFile.js +0 -68
  87. package/dist/esm/libs/serverTiming.js +0 -22
  88. package/dist/esm/renderHtml.js +0 -133
  89. package/dist/esm/server/index.js +0 -350
  90. package/dist/esm/server/modernServer.js +0 -884
  91. package/dist/esm/server/modernServerSplit.js +0 -113
  92. package/dist/esm/utils.js +0 -103
  93. package/dist/esm/workerServer.js +0 -352
  94. package/dist/esm-node/constants.js +0 -43
  95. package/dist/esm-node/libs/context/context.js +0 -202
  96. package/dist/esm-node/libs/context/index.js +0 -6
  97. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  98. package/dist/esm-node/libs/hook-api/base.js +0 -61
  99. package/dist/esm-node/libs/hook-api/index.js +0 -57
  100. package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
  101. package/dist/esm-node/libs/hook-api/route.js +0 -20
  102. package/dist/esm-node/libs/hook-api/template.js +0 -47
  103. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  104. package/dist/esm-node/libs/loadConfig.js +0 -34
  105. package/dist/esm-node/libs/metrics.js +0 -9
  106. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  107. package/dist/esm-node/libs/preload/index.js +0 -2
  108. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  109. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  110. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  111. package/dist/esm-node/libs/proxy.js +0 -74
  112. package/dist/esm-node/libs/render/index.js +0 -75
  113. package/dist/esm-node/libs/render/measure.js +0 -49
  114. package/dist/esm-node/libs/render/ssr.js +0 -96
  115. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
  116. package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
  117. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
  118. package/dist/esm-node/libs/render/static.js +0 -38
  119. package/dist/esm-node/libs/render/type.js +0 -9
  120. package/dist/esm-node/libs/render/utils.js +0 -16
  121. package/dist/esm-node/libs/reporter.js +0 -15
  122. package/dist/esm-node/libs/route/index.js +0 -58
  123. package/dist/esm-node/libs/route/matcher.js +0 -89
  124. package/dist/esm-node/libs/route/route.js +0 -16
  125. package/dist/esm-node/libs/serveFile.js +0 -49
  126. package/dist/esm-node/libs/serverTiming.js +0 -17
  127. package/dist/esm-node/renderHtml.js +0 -73
  128. package/dist/esm-node/server/index.js +0 -189
  129. package/dist/esm-node/server/modernServer.js +0 -488
  130. package/dist/esm-node/server/modernServerSplit.js +0 -43
  131. package/dist/esm-node/utils.js +0 -132
  132. package/dist/esm-node/workerServer.js +0 -235
  133. package/dist/types/constants.d.ts +0 -30
  134. package/dist/types/libs/context/context.d.ts +0 -62
  135. package/dist/types/libs/context/index.d.ts +0 -7
  136. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  137. package/dist/types/libs/hook-api/base.d.ts +0 -53
  138. package/dist/types/libs/hook-api/index.d.ts +0 -6
  139. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  140. package/dist/types/libs/hook-api/route.d.ts +0 -9
  141. package/dist/types/libs/hook-api/template.d.ts +0 -22
  142. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  143. package/dist/types/libs/loadConfig.d.ts +0 -13
  144. package/dist/types/libs/metrics.d.ts +0 -3
  145. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  146. package/dist/types/libs/preload/index.d.ts +0 -2
  147. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  148. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  149. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  150. package/dist/types/libs/proxy.d.ts +0 -13
  151. package/dist/types/libs/render/index.d.ts +0 -21
  152. package/dist/types/libs/render/measure.d.ts +0 -10
  153. package/dist/types/libs/render/ssr.d.ts +0 -12
  154. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  155. package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
  156. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
  157. package/dist/types/libs/render/static.d.ts +0 -3
  158. package/dist/types/libs/render/type.d.ts +0 -36
  159. package/dist/types/libs/render/utils.d.ts +0 -5
  160. package/dist/types/libs/reporter.d.ts +0 -2
  161. package/dist/types/libs/route/index.d.ts +0 -15
  162. package/dist/types/libs/route/matcher.d.ts +0 -15
  163. package/dist/types/libs/route/route.d.ts +0 -14
  164. package/dist/types/libs/serveFile.d.ts +0 -9
  165. package/dist/types/libs/serverTiming.d.ts +0 -13
  166. package/dist/types/renderHtml.d.ts +0 -23
  167. package/dist/types/server/index.d.ts +0 -55
  168. package/dist/types/server/modernServer.d.ts +0 -71
  169. package/dist/types/server/modernServerSplit.d.ts +0 -2
  170. package/dist/types/type.d.ts +0 -78
  171. package/dist/types/utils.d.ts +0 -24
  172. package/dist/types/workerServer.d.ts +0 -59
  173. /package/dist/esm/{type.js → types.js} +0 -0
  174. /package/dist/esm-node/{type.js → types.js} +0 -0
@@ -1,36 +0,0 @@
1
- /// <reference types="react" />
2
- /// <reference types="node" />
3
- import { Writable, Readable } from 'stream';
4
- import { BaseSSRServerContext } from '@modern-js/types';
5
- type MetaKeyMap = {
6
- header?: string[];
7
- query?: string[];
8
- };
9
- type MetaKeyMatch = {
10
- header?: MatchMap;
11
- query?: MatchMap;
12
- };
13
- type MatchMap = Record<string, Record<string, string>>;
14
- export type CacheConfig = {
15
- interval: number;
16
- staleLimit: number | boolean;
17
- level: number;
18
- includes?: MetaKeyMap | null;
19
- excludes?: MetaKeyMap | null;
20
- matches?: MetaKeyMatch | null;
21
- };
22
- export declare enum RenderLevel {
23
- CLIENT_RENDER = 0,
24
- SERVER_PREFETCH = 1,
25
- SERVER_RENDER = 2
26
- }
27
- export type SSRServerContext = BaseSSRServerContext & {
28
- cacheConfig?: CacheConfig;
29
- staticGenerate?: boolean;
30
- };
31
- export type ModernSSRReactComponent = React.ComponentType<any> & {
32
- init: (context: SSRServerContext) => Promise<void>;
33
- prefetch: (context: SSRServerContext) => Promise<Record<string, any>>;
34
- };
35
- export type RenderFunction = (context: SSRServerContext) => Promise<string | ((writable: Writable) => Promise<Readable>) | undefined>;
36
- export {};
@@ -1,5 +0,0 @@
1
- /// <reference types="node" />
2
- import { Readable } from 'stream';
3
- import type { ModernServerContext } from '@modern-js/types';
4
- export declare const injectServerData: (content: string, context: ModernServerContext) => string;
5
- export declare const injectServerDataStream: (content: Readable, context: ModernServerContext) => import("stream").Transform;
@@ -1,2 +0,0 @@
1
- import { Reporter } from '@modern-js/types/server';
2
- export declare const defaultReporter: Reporter;
@@ -1,15 +0,0 @@
1
- import { RouteMatcher } from './matcher';
2
- import { ModernRoute, ModernRouteInterface } from './route';
3
- export declare class RouteMatchManager {
4
- matchers: RouteMatcher[];
5
- private specs;
6
- constructor();
7
- private filter;
8
- private best;
9
- reset(specs: ModernRouteInterface[]): void;
10
- match(pathname: string): RouteMatcher | undefined;
11
- matchEntry(entryname: string): RouteMatcher | undefined;
12
- getBundles(): (string | undefined)[];
13
- }
14
- export type { ModernRouteInterface, ModernRoute };
15
- export { RouteMatcher };
@@ -1,15 +0,0 @@
1
- import { MatchFunction } from 'path-to-regexp';
2
- import { ModernRoute, ModernRouteInterface } from './route';
3
- export declare class RouteMatcher {
4
- spec: ModernRouteInterface;
5
- urlPath: string;
6
- urlMatcher?: MatchFunction;
7
- urlReg?: RegExp;
8
- constructor(spec: ModernRouteInterface);
9
- generate(url: string): ModernRoute;
10
- parseURLParams(pathname: string): Record<string, string>;
11
- matchLength(pathname: string): number | null;
12
- matchUrlPath(requestUrl: string): boolean;
13
- matchEntry(entryName: string): boolean;
14
- private setupUrlPath;
15
- }
@@ -1,14 +0,0 @@
1
- import { ServerRoute as ModernRouteInterface } from '@modern-js/types';
2
- export type { ModernRouteInterface };
3
- export declare class ModernRoute implements ModernRouteInterface {
4
- entryName: string;
5
- urlPath: string;
6
- entryPath: string;
7
- bundle: string;
8
- isApi: boolean;
9
- isSSR: boolean;
10
- isSPA: boolean;
11
- params: Record<string, any>;
12
- responseHeaders?: Record<string, any>;
13
- constructor(routeSpec: ModernRouteInterface);
14
- }
@@ -1,9 +0,0 @@
1
- import type { ModernServerContext } from '@modern-js/types';
2
- import { NextFunction, ModernServerHandler } from '../type';
3
- type Rule = {
4
- path: string | RegExp;
5
- target: string;
6
- };
7
- export declare const faviconFallbackHandler: ModernServerHandler;
8
- export declare const createStaticFileHandler: (rules: Rule[], assetPrefix?: string) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
9
- export {};
@@ -1,13 +0,0 @@
1
- import { ServerTiming as IServerTiming } from '@modern-js/types';
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;
6
- }
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;
12
- }
13
- export {};
@@ -1,23 +0,0 @@
1
- /// <reference path="type.d.ts" />
2
- /// <reference types="node" />
3
- /// <reference types="node/http" />
4
- import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
5
- import { ModernServerOptions } from './type';
6
- export interface RenderHtmlOptions {
7
- /** request url */
8
- url: string;
9
- /** request method */
10
- method?: string;
11
- /** request headers */
12
- headers?: IncomingHttpHeaders;
13
- /** request body */
14
- body?: string;
15
- serverOptions: ModernServerOptions;
16
- }
17
- export interface ReturnResponse {
18
- headers: OutgoingHttpHeaders;
19
- redirected: boolean;
20
- status: number;
21
- url: string;
22
- body: string;
23
- }
@@ -1,55 +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 type { ListenOptions } from 'net';
8
- import { ModernServerOptions, ServerConstructor } from '../type';
9
- export declare class Server {
10
- options: ModernServerOptions;
11
- protected serverImpl: ServerConstructor;
12
- private server;
13
- private app;
14
- private runner;
15
- private serverConfig;
16
- constructor(options: ModernServerOptions);
17
- /**
18
- * 初始化顺序
19
- * - 读取 .env.{process.env.MODERN_ENV} 文件,加载环境变量
20
- * - 获取 server runtime config
21
- * - 设置 context
22
- * - 创建 hooksRunner
23
- * - 合并插件,内置插件和 serverConfig 中配置的插件
24
- * - 执行 config hook
25
- * - 获取最终的配置
26
- * - 设置配置到 context
27
- * - 初始化 server
28
- * - 执行 prepare hook
29
- * - 执行 server init
30
- */
31
- init({ disableHttpServer }?: {
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
- }
@@ -1,71 +0,0 @@
1
- /// <reference path="../type.d.ts" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node/http" />
5
- import { IncomingMessage, ServerResponse, Server } from 'http';
6
- import { Adapter, WebAdapter, APIServerStartInput, ServerOptions } from '@modern-js/server-core';
7
- import { type ModernServerContext, type ServerRoute } from '@modern-js/types';
8
- import { Logger } from '@modern-js/utils/logger';
9
- import type { ContextOptions } from '../libs/context';
10
- import { ModernServerOptions, NextFunction, ServerHookRunner, Metrics, ModernServerInterface, BuildOptions, ModernServerHandler } from '../type';
11
- import { RouteMatchManager, ModernRouteInterface, ModernRoute } from '../libs/route';
12
- import { RenderHandler } from '../libs/render';
13
- import { mergeExtension } from '../utils';
14
- type ModernServerAsyncHandler = (context: ModernServerContext, next: NextFunction) => Promise<void>;
15
- export declare class ModernServer implements ModernServerInterface {
16
- pwd: string;
17
- distDir: string;
18
- protected workDir: string;
19
- protected router: RouteMatchManager;
20
- protected conf: ServerOptions;
21
- protected handlers: ModernServerAsyncHandler[];
22
- protected presetRoutes?: ModernRouteInterface[];
23
- protected runner: ServerHookRunner;
24
- protected readonly logger: Logger;
25
- protected readonly metrics: Metrics;
26
- protected readonly runMode: string;
27
- protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
28
- protected routeRenderHandler: RenderHandler;
29
- protected readonly staticGenerate: boolean;
30
- protected readonly metaName?: string;
31
- private loaderHandler;
32
- private frameWebHandler;
33
- private frameAPIHandler;
34
- private _handler;
35
- constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget, appContext, }: ModernServerOptions);
36
- onInit(runner: ServerHookRunner, app: Server): Promise<void>;
37
- getRenderHandler(): RenderHandler;
38
- onRepack(_: BuildOptions): void;
39
- getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
40
- render(req: IncomingMessage, res: ServerResponse, url?: string): Promise<string | import("stream").Readable | null>;
41
- createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server<typeof IncomingMessage, typeof ServerResponse>>;
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;
70
- }
71
- export {};
@@ -1,2 +0,0 @@
1
- import { ModernServerOptions, ModernServerInterface } from '../type';
2
- export declare const createProdServer: (options: ModernServerOptions) => ModernServerInterface;
@@ -1,78 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- /// <reference types="node/http" />
5
- import { IncomingMessage, Server, ServerResponse } from 'http';
6
- import { Readable } from 'stream';
7
- import { serverManager, ServerOptions } from '@modern-js/server-core';
8
- import type { ServerPlugin } from '@modern-js/server-core';
9
- import type { Metrics, Logger, NextFunction, ModernServerContext, InternalPlugins, Reporter } from '@modern-js/types';
10
- import { Logger as LocalLogger } from '@modern-js/utils/logger';
11
- import type { ModernRouteInterface } from './libs/route';
12
- declare module 'http' {
13
- interface IncomingMessage {
14
- logger: Logger;
15
- metrics: Metrics;
16
- reporter?: Reporter;
17
- body?: any;
18
- }
19
- interface OutgoingMessage {
20
- set: (key: string, value: any) => this;
21
- modernFlushedHeaders?: boolean;
22
- }
23
- }
24
- export type ModernServerOptions = {
25
- pwd: string;
26
- config: ServerOptions;
27
- plugins?: ServerPlugin[];
28
- internalPlugins?: InternalPlugins;
29
- routes?: ModernRouteInterface[];
30
- staticGenerate?: boolean;
31
- logger?: LocalLogger;
32
- metrics?: Metrics;
33
- apiOnly?: boolean;
34
- ssrOnly?: boolean;
35
- webOnly?: boolean;
36
- runMode?: string;
37
- appContext?: {
38
- appDirectory?: string;
39
- sharedDirectory: string;
40
- apiDirectory: string;
41
- lambdaDirectory: string;
42
- metaName: string;
43
- };
44
- serverConfigFile?: string;
45
- proxyTarget?: any;
46
- };
47
- export type RenderResult = {
48
- content: string | Buffer;
49
- contentType: string;
50
- contentStream?: Readable;
51
- statusCode?: number;
52
- headers?: Record<string, string>;
53
- redirect?: boolean;
54
- };
55
- export type ConfWithBFF = {
56
- bff?: {
57
- prefix: string;
58
- } & ServerOptions['bff'];
59
- };
60
- export type Then<T> = T extends PromiseLike<infer U> ? U : T;
61
- export type ServerHookRunner = Then<ReturnType<typeof serverManager.init>>;
62
- export type BuildOptions = {
63
- routes?: ModernRouteInterface[];
64
- };
65
- export type { Metrics, Logger, NextFunction };
66
- export type HookNames = 'afterMatch' | 'afterRender';
67
- export interface ModernServerInterface {
68
- pwd: string;
69
- distDir: string;
70
- onInit: (runner: ServerHookRunner, app: Server) => Promise<void>;
71
- onRepack: (options: BuildOptions) => void;
72
- getRequestHandler: () => (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
73
- createHTTPServer: (handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void) => Promise<Server>;
74
- render: (req: IncomingMessage, res: ServerResponse, url?: string) => Promise<string | Readable | null>;
75
- close?: () => Promise<void>;
76
- }
77
- export type ServerConstructor = (options: ModernServerOptions) => ModernServerInterface;
78
- export type ModernServerHandler = (context: ModernServerContext, next: NextFunction) => Promise<void> | void;
@@ -1,24 +0,0 @@
1
- /// <reference path="type.d.ts" />
2
- /// <reference types="node" />
3
- /// <reference types="node/http" />
4
- import { IncomingMessage } from 'http';
5
- import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
6
- export declare const debug: any;
7
- export declare const mergeExtension: (users: any[]) => {
8
- middleware: any[];
9
- };
10
- export declare const noop: () => void;
11
- export declare const createErrorDocument: (status: number, text: string) => string;
12
- export type CollectMiddlewaresResult = {
13
- web: any[];
14
- api: any[];
15
- };
16
- export declare const createMiddlewareCollecter: () => {
17
- getMiddlewares: () => CollectMiddlewaresResult;
18
- addWebMiddleware: (input: any) => void;
19
- addAPIMiddleware: (input: any) => void;
20
- };
21
- export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig, prefix?: string) => RegExp;
22
- export declare const prepareFavicons: (favicon: string | undefined, faviconByEntries?: Record<string, string | undefined>) => string[];
23
- export declare const headersWithoutCookie: (headers: IncomingMessage['headers']) => import("http").IncomingHttpHeaders;
24
- export declare const isRedirect: (code: number) => boolean;
@@ -1,59 +0,0 @@
1
- import type { AfterMatchContext, AfterRenderContext, MiddlewareContext, NextFunction } from '@modern-js/types';
2
- import { ModernRouteInterface } from './libs/route';
3
- export type Context = Record<string, any>;
4
- export interface HandlerOptions {
5
- request: Request;
6
- loadableStats: Record<string, any>;
7
- routeManifest: Record<string, any>;
8
- }
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;
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
- };
47
- export type Manifest = {
48
- /**
49
- * @param key - path
50
- */
51
- pages: Record<string, Page>;
52
- routes: ModernRouteInterface[];
53
- options?: {
54
- forceCSR?: boolean;
55
- metaName?: string;
56
- };
57
- };
58
- export declare const createHandler: (manifest: Manifest) => (options: HandlerOptions) => Promise<ReturnResponse>;
59
- export {};
File without changes
File without changes