@modern-js/server-core 2.48.3 → 2.48.5-alpha.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/base/adapters/node/bff.js +69 -0
- package/dist/cjs/base/adapters/node/hono.js +63 -0
- package/dist/cjs/base/adapters/node/index.js +54 -0
- package/dist/cjs/base/adapters/node/loadServer.js +56 -0
- package/dist/cjs/base/adapters/node/middlewares/index.js +28 -0
- package/dist/cjs/base/adapters/node/middlewares/mock.js +113 -0
- package/dist/cjs/base/adapters/node/middlewares/serverManifest.js +82 -0
- package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +67 -0
- package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +109 -0
- package/dist/cjs/base/adapters/node/middlewares/templates.js +67 -0
- package/dist/cjs/base/adapters/node/node.js +127 -0
- package/dist/cjs/base/adapters/node/polyfills/index.js +24 -0
- package/dist/cjs/base/adapters/node/polyfills/install.js +72 -0
- package/dist/cjs/base/adapters/node/polyfills/stream.js +153 -0
- package/dist/cjs/base/constants.js +58 -0
- package/dist/cjs/base/index.js +47 -0
- package/dist/cjs/base/middlewares/customServer/base.js +154 -0
- package/dist/cjs/base/middlewares/customServer/context.js +73 -0
- package/dist/cjs/base/middlewares/customServer/index.js +130 -0
- package/dist/cjs/base/middlewares/customServer/routerApi.js +44 -0
- package/dist/cjs/base/middlewares/customServer/template.js +58 -0
- package/dist/cjs/base/middlewares/faviconFallback.js +34 -0
- package/dist/cjs/base/middlewares/index.js +28 -0
- package/dist/cjs/base/middlewares/logger.js +77 -0
- package/dist/cjs/base/middlewares/monitor.js +90 -0
- package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +46 -0
- package/dist/cjs/base/middlewares/renderHandler/index.js +106 -0
- package/dist/cjs/base/middlewares/renderHandler/render.js +125 -0
- package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +40 -0
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +197 -0
- package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +208 -0
- package/dist/cjs/base/serverBase.js +203 -0
- package/dist/cjs/base/utils/debug.js +29 -0
- package/dist/cjs/base/utils/entry.js +30 -0
- package/dist/cjs/base/utils/env.js +45 -0
- package/dist/cjs/base/utils/error.js +65 -0
- package/dist/cjs/base/utils/index.js +45 -0
- package/dist/cjs/base/utils/middlewareCollector.js +54 -0
- package/dist/cjs/base/utils/request.js +65 -0
- package/dist/cjs/base/utils/serverConfig.js +70 -0
- package/dist/cjs/base/utils/transformStream.js +61 -0
- package/dist/cjs/base/utils/warmup.js +43 -0
- package/dist/cjs/core/hono.js +16 -0
- package/dist/cjs/core/index.js +22 -0
- package/dist/cjs/{loadPlugins.js → core/loadPlugins.js} +4 -7
- package/dist/cjs/{plugin.js → core/plugin.js} +1 -3
- package/dist/cjs/core/render.js +16 -0
- package/dist/cjs/core/server.js +16 -0
- package/dist/cjs/index.js +6 -4
- package/dist/esm/base/adapters/node/bff.js +128 -0
- package/dist/esm/base/adapters/node/hono.js +83 -0
- package/dist/esm/base/adapters/node/index.js +19 -0
- package/dist/esm/base/adapters/node/loadServer.js +73 -0
- package/dist/esm/base/adapters/node/middlewares/index.js +4 -0
- package/dist/esm/base/adapters/node/middlewares/mock.js +198 -0
- package/dist/esm/base/adapters/node/middlewares/serverManifest.js +132 -0
- package/dist/esm/base/adapters/node/middlewares/serverPublic.js +85 -0
- package/dist/esm/base/adapters/node/middlewares/serverStatic.js +119 -0
- package/dist/esm/base/adapters/node/middlewares/templates.js +114 -0
- package/dist/esm/base/adapters/node/node.js +197 -0
- package/dist/esm/base/adapters/node/polyfills/index.js +2 -0
- package/dist/esm/base/adapters/node/polyfills/install.js +48 -0
- package/dist/esm/base/adapters/node/polyfills/stream.js +316 -0
- package/dist/esm/base/constants.js +31 -0
- package/dist/esm/base/index.js +15 -0
- package/dist/esm/base/middlewares/customServer/base.js +182 -0
- package/dist/esm/base/middlewares/customServer/context.js +68 -0
- package/dist/esm/base/middlewares/customServer/index.js +214 -0
- package/dist/esm/base/middlewares/customServer/routerApi.js +26 -0
- package/dist/esm/base/middlewares/customServer/template.js +47 -0
- package/dist/esm/base/middlewares/faviconFallback.js +28 -0
- package/dist/esm/base/middlewares/index.js +4 -0
- package/dist/esm/base/middlewares/logger.js +75 -0
- package/dist/esm/base/middlewares/monitor.js +157 -0
- package/dist/esm/base/middlewares/renderHandler/dataHandler.js +45 -0
- package/dist/esm/base/middlewares/renderHandler/index.js +165 -0
- package/dist/esm/base/middlewares/renderHandler/render.js +215 -0
- package/dist/esm/base/middlewares/renderHandler/serverTiming.js +21 -0
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +306 -0
- package/dist/esm/base/middlewares/renderHandler/ssrRender.js +265 -0
- package/dist/esm/base/serverBase.js +383 -0
- package/dist/esm/base/utils/debug.js +5 -0
- package/dist/esm/base/utils/entry.js +6 -0
- package/dist/esm/base/utils/env.js +20 -0
- package/dist/esm/base/utils/error.js +12 -0
- package/dist/esm/base/utils/index.js +13 -0
- package/dist/esm/base/utils/middlewareCollector.js +31 -0
- package/dist/esm/base/utils/request.js +39 -0
- package/dist/esm/base/utils/serverConfig.js +58 -0
- package/dist/esm/base/utils/transformStream.js +90 -0
- package/dist/esm/base/utils/warmup.js +9 -0
- package/dist/esm/core/hono.js +0 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/loadPlugins.js +26 -0
- package/dist/esm/core/plugin.js +98 -0
- package/dist/esm/core/render.js +0 -0
- package/dist/esm/core/server.js +0 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm-node/base/adapters/node/bff.js +45 -0
- package/dist/esm-node/base/adapters/node/hono.js +38 -0
- package/dist/esm-node/base/adapters/node/index.js +19 -0
- package/dist/esm-node/base/adapters/node/loadServer.js +22 -0
- package/dist/esm-node/base/adapters/node/middlewares/index.js +4 -0
- package/dist/esm-node/base/adapters/node/middlewares/mock.js +79 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +48 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +33 -0
- package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +75 -0
- package/dist/esm-node/base/adapters/node/middlewares/templates.js +32 -0
- package/dist/esm-node/base/adapters/node/node.js +101 -0
- package/dist/esm-node/base/adapters/node/polyfills/index.js +2 -0
- package/dist/esm-node/base/adapters/node/polyfills/install.js +48 -0
- package/dist/esm-node/base/adapters/node/polyfills/stream.js +126 -0
- package/dist/esm-node/base/constants.js +31 -0
- package/dist/esm-node/base/index.js +15 -0
- package/dist/esm-node/base/middlewares/customServer/base.js +130 -0
- package/dist/esm-node/base/middlewares/customServer/context.js +46 -0
- package/dist/esm-node/base/middlewares/customServer/index.js +106 -0
- package/dist/esm-node/base/middlewares/customServer/routerApi.js +20 -0
- package/dist/esm-node/base/middlewares/customServer/template.js +34 -0
- package/dist/esm-node/base/middlewares/faviconFallback.js +10 -0
- package/dist/esm-node/base/middlewares/index.js +4 -0
- package/dist/esm-node/base/middlewares/logger.js +53 -0
- package/dist/esm-node/base/middlewares/monitor.js +63 -0
- package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +22 -0
- package/dist/esm-node/base/middlewares/renderHandler/index.js +71 -0
- package/dist/esm-node/base/middlewares/renderHandler/render.js +101 -0
- package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +16 -0
- package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +162 -0
- package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +173 -0
- package/dist/esm-node/base/serverBase.js +168 -0
- package/dist/esm-node/base/utils/debug.js +5 -0
- package/dist/esm-node/base/utils/entry.js +6 -0
- package/dist/esm-node/base/utils/env.js +20 -0
- package/dist/esm-node/base/utils/error.js +41 -0
- package/dist/esm-node/base/utils/index.js +13 -0
- package/dist/esm-node/base/utils/middlewareCollector.js +29 -0
- package/dist/esm-node/base/utils/request.js +38 -0
- package/dist/esm-node/base/utils/serverConfig.js +34 -0
- package/dist/esm-node/base/utils/transformStream.js +36 -0
- package/dist/esm-node/base/utils/warmup.js +9 -0
- package/dist/esm-node/core/hono.js +0 -0
- package/dist/esm-node/core/index.js +1 -0
- package/dist/{esm → esm-node/core}/loadPlugins.js +4 -7
- package/dist/{esm → esm-node/core}/plugin.js +1 -3
- package/dist/esm-node/core/render.js +0 -0
- package/dist/esm-node/core/server.js +0 -0
- package/dist/esm-node/index.js +5 -0
- package/dist/esm-node/types/config/bff.js +0 -0
- package/dist/esm-node/types/config/dev.js +0 -0
- package/dist/esm-node/types/config/html.js +0 -0
- package/dist/esm-node/types/config/index.js +6 -0
- package/dist/esm-node/types/config/output.js +0 -0
- package/dist/esm-node/types/config/security.js +0 -0
- package/dist/esm-node/types/config/server.js +0 -0
- package/dist/esm-node/types/config/share.js +0 -0
- package/dist/esm-node/types/config/source.js +0 -0
- package/dist/esm-node/types/config/tools.js +0 -0
- package/dist/types/base/adapters/node/bff.d.ts +4 -0
- package/dist/types/base/adapters/node/hono.d.ts +22 -0
- package/dist/types/base/adapters/node/index.d.ts +6 -0
- package/dist/types/base/adapters/node/loadServer.d.ts +3 -0
- package/dist/types/base/adapters/node/middlewares/index.d.ts +4 -0
- package/dist/types/base/adapters/node/middlewares/mock.d.ts +5 -0
- package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +3 -0
- package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +7 -0
- package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +11 -0
- package/dist/types/base/adapters/node/middlewares/templates.d.ts +4 -0
- package/dist/types/base/adapters/node/node.d.ts +13 -0
- package/dist/types/base/adapters/node/polyfills/index.d.ts +2 -0
- package/dist/types/base/adapters/node/polyfills/install.d.ts +1 -0
- package/dist/types/base/adapters/node/polyfills/stream.d.ts +18 -0
- package/dist/types/base/constants.d.ts +24 -0
- package/dist/types/base/index.d.ts +7 -0
- package/dist/types/base/middlewares/customServer/base.d.ts +3 -0
- package/dist/types/base/middlewares/customServer/context.d.ts +7 -0
- package/dist/types/base/middlewares/customServer/index.d.ts +13 -0
- package/dist/types/base/middlewares/customServer/routerApi.d.ts +9 -0
- package/dist/types/base/middlewares/customServer/template.d.ts +11 -0
- package/dist/types/base/middlewares/faviconFallback.d.ts +2 -0
- package/dist/types/base/middlewares/index.d.ts +4 -0
- package/dist/types/base/middlewares/logger.d.ts +2 -0
- package/dist/types/base/middlewares/monitor.d.ts +6 -0
- package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +5 -0
- package/dist/types/base/middlewares/renderHandler/index.d.ts +10 -0
- package/dist/types/base/middlewares/renderHandler/render.d.ts +12 -0
- package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +7 -0
- package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +29 -0
- package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +21 -0
- package/dist/types/base/serverBase.d.ts +52 -0
- package/dist/types/base/utils/debug.d.ts +1 -0
- package/dist/types/base/utils/entry.d.ts +2 -0
- package/dist/types/base/utils/env.d.ts +2 -0
- package/dist/types/base/utils/error.d.ts +1 -0
- package/dist/types/base/utils/index.d.ts +8 -0
- package/dist/types/base/utils/middlewareCollector.d.ts +12 -0
- package/dist/types/base/utils/request.d.ts +12 -0
- package/dist/types/base/utils/serverConfig.d.ts +14 -0
- package/dist/types/base/utils/transformStream.d.ts +5 -0
- package/dist/types/base/utils/warmup.d.ts +1 -0
- package/dist/types/core/hono.d.ts +1 -0
- package/dist/types/core/index.d.ts +1 -0
- package/dist/types/core/loadPlugins.d.ts +3 -0
- package/dist/types/{plugin.d.ts → core/plugin.d.ts} +32 -35
- package/dist/types/core/render.d.ts +15 -0
- package/dist/types/core/server.d.ts +106 -0
- package/dist/types/index.d.ts +3 -2
- package/package.json +44 -6
- package/dist/types/loadPlugins.d.ts +0 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createErrorHtml } from './utils';
|
|
2
|
+
export { AGGRED_DIR } from './constants';
|
|
3
|
+
export { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, } from './middlewares';
|
|
4
|
+
export type { BindRenderHandleOptions } from './middlewares';
|
|
5
|
+
export type { ServerBase } from './serverBase';
|
|
6
|
+
export { createServerBase } from './serverBase';
|
|
7
|
+
export type { ServerBaseOptions, Next, Middleware, ServerEnv, ServerManifest, HonoContext, HonoEnv, HonoMiddleware, HonoRequest, } from '../core/server';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AfterMatchContext, AfterRenderContext, MiddlewareContext, AfterStreamingRenderContext, ServerRoute, HookContext } from '@modern-js/types';
|
|
2
|
+
import { HonoContext, ServerEnv } from '../../../core/server';
|
|
3
|
+
import type { ServerNodeEnv } from '../../adapters/node/hono';
|
|
4
|
+
export declare function getAfterMatchCtx(entryName: string, baseHookCtx: HookContext): AfterMatchContext;
|
|
5
|
+
export declare function getAfterRenderCtx(c: HonoContext, baseHookCtx: HookContext, route: Partial<ServerRoute>): Promise<AfterRenderContext>;
|
|
6
|
+
export declare function createCustomMiddlewaresCtx(c: HonoContext<ServerNodeEnv & ServerEnv>, locals: Record<string, any>): MiddlewareContext;
|
|
7
|
+
export declare function createAfterStreamingRenderContext(baseHookCtx: HookContext, route: Partial<ServerRoute>): (chunk: string) => AfterStreamingRenderContext;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { ServerBase } from '../../serverBase';
|
|
3
|
+
import { ServerHookRunner } from '../../../core/plugin';
|
|
4
|
+
import { Middleware, ServerEnv } from '../../../core/server';
|
|
5
|
+
import type { ServerNodeEnv } from '../../adapters/node/hono';
|
|
6
|
+
export declare class CustomServer {
|
|
7
|
+
private runner;
|
|
8
|
+
private serverMiddlewarePromise;
|
|
9
|
+
private serverBase;
|
|
10
|
+
constructor(runner: ServerHookRunner, serverBase: ServerBase, pwd: string);
|
|
11
|
+
getHookMiddleware(entryName: string, routes: ServerRoute[]): Middleware<ServerEnv>;
|
|
12
|
+
getServerMiddleware(): Middleware<ServerNodeEnv & ServerEnv>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class TemplateApi {
|
|
2
|
+
private body;
|
|
3
|
+
constructor(body: string);
|
|
4
|
+
set(content: string): void;
|
|
5
|
+
get(): string;
|
|
6
|
+
prependHead(fragment: string): void;
|
|
7
|
+
appendHead(fragment: string): void;
|
|
8
|
+
prependBody(fragment: string): void;
|
|
9
|
+
appendBody(fragment: string): void;
|
|
10
|
+
private replaceBody;
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Logger, Metrics } from '@modern-js/types';
|
|
2
|
+
import type { HonoContext, Next, ServerEnv } from '../../core/server';
|
|
3
|
+
export declare function injectReporter(): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
4
|
+
export declare function initReporter(entryName: string): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
5
|
+
export declare function injectLogger(inputLogger: Logger): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
6
|
+
export declare function injectMetrics(inputMetrics: Metrics): (c: HonoContext<ServerEnv>, next: Next) => Promise<void>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { SSRRenderOptions } from './ssrRender';
|
|
3
|
+
export declare const dataHandler: (request: Request, { routeInfo, serverRoutes, reporter, logger, serverManifest, }: SSRRenderOptions & {
|
|
4
|
+
serverRoutes: ServerRoute[];
|
|
5
|
+
}) => Promise<Response | void>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Render } from '../../../core/render';
|
|
2
|
+
import { ServerBaseOptions } from '../../../core/server';
|
|
3
|
+
import { ServerBase } from '../../serverBase';
|
|
4
|
+
export type BindRenderHandleOptions = {
|
|
5
|
+
metaName?: string;
|
|
6
|
+
staticGenerate?: boolean;
|
|
7
|
+
disableCustomHook?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function getRenderHandler(options: ServerBaseOptions & BindRenderHandleOptions): Promise<Render | null>;
|
|
10
|
+
export declare function bindRenderHandler(server: ServerBase, options: ServerBaseOptions & BindRenderHandleOptions): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ServerRoute } from '@modern-js/types';
|
|
2
|
+
import { Render } from '../../../core/render';
|
|
3
|
+
interface CreateRenderOptions {
|
|
4
|
+
routes: ServerRoute[];
|
|
5
|
+
pwd: string;
|
|
6
|
+
staticGenerate?: boolean;
|
|
7
|
+
metaName?: string;
|
|
8
|
+
forceCSR?: boolean;
|
|
9
|
+
nonce?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce, }: CreateRenderOptions): Promise<Render>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ServerTiming as ServerTimingInterafce } from '@modern-js/types';
|
|
2
|
+
export declare class ServerTiming implements ServerTimingInterafce {
|
|
3
|
+
private headers;
|
|
4
|
+
private meta;
|
|
5
|
+
constructor(headers: Headers, meta: string);
|
|
6
|
+
addServeTiming(name: string, dur: number, desc?: string): this;
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node/http" />
|
|
3
|
+
/// <reference types="dist/types/core/server" />
|
|
4
|
+
import type { IncomingMessage } from 'http';
|
|
5
|
+
import { Readable } from 'stream';
|
|
6
|
+
import type { CacheControl, CacheOption, Container } from '@modern-js/types';
|
|
7
|
+
import type { SSRServerContext, ServerRender } from '../../../core/server';
|
|
8
|
+
export type CacheStatus = 'hit' | 'stale' | 'expired' | 'miss';
|
|
9
|
+
export type CacheResult = {
|
|
10
|
+
data: string | Readable | ReadableStream;
|
|
11
|
+
status?: CacheStatus;
|
|
12
|
+
};
|
|
13
|
+
export declare class CacheManager {
|
|
14
|
+
private container;
|
|
15
|
+
constructor(container: Container<string, string>);
|
|
16
|
+
getCacheResult(req: Request, cacheControl: CacheControl, render: ServerRender, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
17
|
+
private processCache;
|
|
18
|
+
private computedKey;
|
|
19
|
+
}
|
|
20
|
+
declare class ServerCache {
|
|
21
|
+
customContainer?: Container;
|
|
22
|
+
cacheOption?: CacheOption;
|
|
23
|
+
private cacheManger?;
|
|
24
|
+
loadCacheMod(pwd?: string): Promise<void>;
|
|
25
|
+
matchCacheControl(req?: IncomingMessage): CacheControl | Promise<CacheControl> | undefined;
|
|
26
|
+
getCache(req: Request, cacheControl: CacheControl, render: ServerRender, ssrContext: SSRServerContext): Promise<CacheResult>;
|
|
27
|
+
}
|
|
28
|
+
export declare const ssrCache: ServerCache;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node/http" />
|
|
2
|
+
/// <reference types="dist/types/core/server" />
|
|
3
|
+
import type { IncomingMessage } from 'http';
|
|
4
|
+
import type { Logger, Reporter, ServerRoute } from '@modern-js/types';
|
|
5
|
+
import { ServerManifest } from '../../../core/server';
|
|
6
|
+
export interface SSRRenderOptions {
|
|
7
|
+
pwd: string;
|
|
8
|
+
html: string;
|
|
9
|
+
routeInfo: ServerRoute;
|
|
10
|
+
staticGenerate: boolean;
|
|
11
|
+
metaName: string;
|
|
12
|
+
logger: Logger;
|
|
13
|
+
serverManifest: ServerManifest;
|
|
14
|
+
/** Produce by custom server hook */
|
|
15
|
+
locals?: Record<string, any>;
|
|
16
|
+
reporter?: Reporter;
|
|
17
|
+
nodeReq?: IncomingMessage;
|
|
18
|
+
nonce?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function ssrRender(request: Request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, }: SSRRenderOptions): Promise<Response>;
|
|
21
|
+
export declare function getPathnameFromNodeReq(nodeReq: IncomingMessage): string;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import { ServerHookRunner } from '../core';
|
|
3
|
+
import type { HonoEnv, ServerBaseOptions } from '../core/server';
|
|
4
|
+
declare module '@modern-js/types' {
|
|
5
|
+
interface ISAppContext {
|
|
6
|
+
serverBase?: ServerBase;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export declare class ServerBase<E extends HonoEnv = any> {
|
|
10
|
+
options: ServerBaseOptions;
|
|
11
|
+
runner: ServerHookRunner;
|
|
12
|
+
private app;
|
|
13
|
+
private serverConfig;
|
|
14
|
+
constructor(options: ServerBaseOptions);
|
|
15
|
+
/**
|
|
16
|
+
* 初始化顺序
|
|
17
|
+
* - 获取 server runtime config
|
|
18
|
+
* - 设置 context
|
|
19
|
+
* - 创建 hooksRunner
|
|
20
|
+
* - 合并插件,内置插件和 serverConfig 中配置的插件
|
|
21
|
+
* - 执行 config hook
|
|
22
|
+
* - 获取最终的配置
|
|
23
|
+
* - 设置配置到 context
|
|
24
|
+
* - 执行 prepare hook
|
|
25
|
+
*/
|
|
26
|
+
init(): Promise<this>;
|
|
27
|
+
private createHookRunner;
|
|
28
|
+
private loadInternalPlugins;
|
|
29
|
+
private loadExternalPlugins;
|
|
30
|
+
private initServerConfig;
|
|
31
|
+
private injectContext;
|
|
32
|
+
private initAppContext;
|
|
33
|
+
/**
|
|
34
|
+
* Execute config hooks
|
|
35
|
+
* @param runner
|
|
36
|
+
* @param options
|
|
37
|
+
*/
|
|
38
|
+
private runConfigHook;
|
|
39
|
+
private initConfig;
|
|
40
|
+
get all(): import("hono/types").HandlerInterface<E, "all", {}, "/">;
|
|
41
|
+
get use(): import("hono/types").MiddlewareHandlerInterface<E, {}, "/">;
|
|
42
|
+
get get(): import("hono/types").HandlerInterface<E, "get", {}, "/">;
|
|
43
|
+
get post(): import("hono/types").HandlerInterface<E, "post", {}, "/">;
|
|
44
|
+
get put(): import("hono/types").HandlerInterface<E, "put", {}, "/">;
|
|
45
|
+
get delete(): import("hono/types").HandlerInterface<E, "delete", {}, "/">;
|
|
46
|
+
get patch(): import("hono/types").HandlerInterface<E, "patch", {}, "/">;
|
|
47
|
+
get handle(): (request: Request, Env?: {} | E["Bindings"] | undefined, executionCtx?: import("hono/dist/types/context").ExecutionContext | undefined) => Response | Promise<Response>;
|
|
48
|
+
get request(): (input: RequestInfo | URL, requestInit?: RequestInit | undefined, Env?: {} | E["Bindings"] | undefined, executionCtx?: import("hono/dist/types/context").ExecutionContext | undefined) => Response | Promise<Response>;
|
|
49
|
+
get notFound(): (handler: import("hono").NotFoundHandler<E>) => Hono<E, {}, "/">;
|
|
50
|
+
get onError(): (handler: import("hono").ErrorHandler<E>) => Hono<E, {}, "/">;
|
|
51
|
+
}
|
|
52
|
+
export declare function createServerBase<E extends HonoEnv>(options: ServerBaseOptions): ServerBase<E>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createErrorHtml: (status: number) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './env';
|
|
2
|
+
export * from './request';
|
|
3
|
+
export * from './transformStream';
|
|
4
|
+
export * from './middlewareCollector';
|
|
5
|
+
export * from './error';
|
|
6
|
+
export * from './warmup';
|
|
7
|
+
export * from './entry';
|
|
8
|
+
export declare const cutNameByHyphen: (s: string) => string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type CollectMiddlewaresResult = {
|
|
2
|
+
web: any[];
|
|
3
|
+
api: any[];
|
|
4
|
+
};
|
|
5
|
+
export declare const mergeExtension: (users: any[]) => {
|
|
6
|
+
middleware: any[];
|
|
7
|
+
};
|
|
8
|
+
export declare const createMiddlewareCollecter: () => {
|
|
9
|
+
getMiddlewares: () => CollectMiddlewaresResult;
|
|
10
|
+
addWebMiddleware: (input: any) => void;
|
|
11
|
+
addAPIMiddleware: (input: any) => void;
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function parseQuery(request: Request): Record<string, string>;
|
|
2
|
+
export declare function parseHeaders(request: Request): Record<string, string | undefined>;
|
|
3
|
+
/**
|
|
4
|
+
* The function is modified based on
|
|
5
|
+
* https://github.com/honojs/hono/blob/main/src/utils/url.ts
|
|
6
|
+
*
|
|
7
|
+
* MIT Licensed
|
|
8
|
+
* https://github.com/honojs/hono/blob/main/LICENSE
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export declare function getPathname(request: Request): string;
|
|
12
|
+
export declare function getHost(request: Request): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ServerConfig } from '../../core/plugin';
|
|
2
|
+
import { ServerOptions } from '../../types/config';
|
|
3
|
+
export declare const getServerConfigPath: (distDirectory: string, serverConfigFile?: string) => Promise<string>;
|
|
4
|
+
export declare const requireConfig: (serverConfigPath: string) => any;
|
|
5
|
+
/**
|
|
6
|
+
* 对配置进行合并,开发环境下,cliConfig 与 serverConfig 进行深合并
|
|
7
|
+
* 生产环境下,resolvedConfig 与 serverConfig 进行深合并
|
|
8
|
+
* resolvedConfigPath: 构建序列化后的 modern.config.js 文件路径
|
|
9
|
+
*/
|
|
10
|
+
export declare const loadConfig: ({ cliConfig, serverConfig, resolvedConfigPath, }: {
|
|
11
|
+
cliConfig: ServerOptions;
|
|
12
|
+
serverConfig: ServerConfig;
|
|
13
|
+
resolvedConfigPath: string;
|
|
14
|
+
}) => any;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MaybeAsync } from '@modern-js/plugin';
|
|
2
|
+
type TransformCb = (tempalte: string) => MaybeAsync<string>;
|
|
3
|
+
export declare function createTransformStream(fn: TransformCb): TransformStream<any, any>;
|
|
4
|
+
export declare function transformResponse(response: Response, transformCb: Array<TransformCb> | TransformCb): Response;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function warmup(bundles: Array<string | undefined>): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { Context as HonoContext, Env as HonoEnv, HonoRequest, Next, MiddlewareHandler as HonoMiddleware, } from 'hono';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './plugin';
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
import { IncomingMessage, ServerResponse } from 'http';
|
|
4
|
-
import { Readable } from 'stream';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
5
3
|
import type { Component } from 'react';
|
|
6
|
-
import { CommonAPI, ToThreads, AsyncSetup, PluginOptions } from '@modern-js/plugin';
|
|
4
|
+
import { CommonAPI, ToThreads, AsyncSetup, PluginOptions, ToRunners } from '@modern-js/plugin';
|
|
7
5
|
import type { ModernServerContext, BaseSSRServerContext, AfterMatchContext, AfterRenderContext, MiddlewareContext, ISAppContext, ServerRoute, HttpMethodDecider, ServerInitHookContext, AfterStreamingRenderContext } from '@modern-js/types';
|
|
8
|
-
import type { BffUserConfig, ServerOptions, UserConfig } from '
|
|
6
|
+
import type { BffUserConfig, ServerOptions, UserConfig } from '../types/config';
|
|
7
|
+
import { HonoMiddleware } from './hono';
|
|
8
|
+
import { Render } from './render';
|
|
9
9
|
export type WebAdapter = (ctx: MiddlewareContext) => void | Promise<void>;
|
|
10
|
-
export type
|
|
10
|
+
export type NodeRequest = IncomingMessage;
|
|
11
|
+
export type NodeResponse = ServerResponse;
|
|
12
|
+
export type Adapter = (req: NodeRequest, res: NodeResponse) => void | Promise<void>;
|
|
11
13
|
export type WebServerStartInput = {
|
|
12
14
|
pwd: string;
|
|
13
15
|
config: Record<string, any>;
|
|
@@ -20,7 +22,7 @@ export type APIServerStartInput = {
|
|
|
20
22
|
config?: {
|
|
21
23
|
middleware?: Array<any>;
|
|
22
24
|
};
|
|
23
|
-
render?:
|
|
25
|
+
render?: Render | null;
|
|
24
26
|
};
|
|
25
27
|
type Change = {
|
|
26
28
|
filename: string;
|
|
@@ -59,12 +61,11 @@ declare const serverHooks: {
|
|
|
59
61
|
serverRoutes: ServerRoute[];
|
|
60
62
|
distDir: string;
|
|
61
63
|
}, LoaderHandler>;
|
|
62
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
63
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
64
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
65
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
64
66
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
65
|
-
onApiChange: import("@modern-js/plugin").
|
|
67
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
66
68
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
67
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
68
69
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
69
70
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
70
71
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -111,6 +112,8 @@ declare const serverHooks: {
|
|
|
111
112
|
export type ServerHooks = typeof serverHooks;
|
|
112
113
|
/** All hook callbacks of server plugin. */
|
|
113
114
|
export type ServerHookCallbacks = ToThreads<ServerHooks>;
|
|
115
|
+
/** The ServerHook Runner type */
|
|
116
|
+
export type ServerHookRunner = ToRunners<ServerHooks>;
|
|
114
117
|
/** All apis for server plugin. */
|
|
115
118
|
export type PluginAPI = typeof pluginAPI & CommonAPI<ServerHooks>;
|
|
116
119
|
export declare const createServerManager: () => import("@modern-js/plugin").AsyncManager<{
|
|
@@ -124,12 +127,11 @@ export declare const createServerManager: () => import("@modern-js/plugin").Asyn
|
|
|
124
127
|
serverRoutes: ServerRoute[];
|
|
125
128
|
distDir: string;
|
|
126
129
|
}, LoaderHandler>;
|
|
127
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
128
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
130
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
131
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
129
132
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
130
|
-
onApiChange: import("@modern-js/plugin").
|
|
133
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
131
134
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
132
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
133
135
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
134
136
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
135
137
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -187,12 +189,11 @@ export declare const serverManager: import("@modern-js/plugin").AsyncManager<{
|
|
|
187
189
|
serverRoutes: ServerRoute[];
|
|
188
190
|
distDir: string;
|
|
189
191
|
}, LoaderHandler>;
|
|
190
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
191
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
192
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
193
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
192
194
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
193
|
-
onApiChange: import("@modern-js/plugin").
|
|
195
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
194
196
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
195
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
196
197
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
197
198
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
198
199
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -256,12 +257,11 @@ export declare const createPlugin: (setup?: AsyncSetup<{
|
|
|
256
257
|
serverRoutes: ServerRoute[];
|
|
257
258
|
distDir: string;
|
|
258
259
|
}, LoaderHandler>;
|
|
259
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
260
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
260
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
261
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
261
262
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
262
|
-
onApiChange: import("@modern-js/plugin").
|
|
263
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
263
264
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
264
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
265
265
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
266
266
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
267
267
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -318,12 +318,11 @@ export declare const createPlugin: (setup?: AsyncSetup<{
|
|
|
318
318
|
serverRoutes: ServerRoute[];
|
|
319
319
|
distDir: string;
|
|
320
320
|
}, LoaderHandler>;
|
|
321
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
322
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
321
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
322
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
323
323
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
324
|
-
onApiChange: import("@modern-js/plugin").
|
|
324
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
325
325
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
326
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
327
326
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
328
327
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
329
328
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -376,12 +375,11 @@ export declare const createPlugin: (setup?: AsyncSetup<{
|
|
|
376
375
|
serverRoutes: ServerRoute[];
|
|
377
376
|
distDir: string;
|
|
378
377
|
}, LoaderHandler>;
|
|
379
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
380
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
378
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
379
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
381
380
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
382
|
-
onApiChange: import("@modern-js/plugin").
|
|
381
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
383
382
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
384
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
385
383
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
386
384
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
387
385
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -438,12 +436,11 @@ export declare const createPlugin: (setup?: AsyncSetup<{
|
|
|
438
436
|
serverRoutes: ServerRoute[];
|
|
439
437
|
distDir: string;
|
|
440
438
|
}, LoaderHandler>;
|
|
441
|
-
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter>;
|
|
442
|
-
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput,
|
|
439
|
+
prepareWebServer: import("@modern-js/plugin").AsyncPipeline<WebServerStartInput, WebAdapter | null>;
|
|
440
|
+
prepareApiServer: import("@modern-js/plugin").AsyncPipeline<APIServerStartInput, HonoMiddleware>;
|
|
443
441
|
repack: import("@modern-js/plugin").Waterfall<void>;
|
|
444
|
-
onApiChange: import("@modern-js/plugin").
|
|
442
|
+
onApiChange: import("@modern-js/plugin").AsyncWaterfall<Change[]>;
|
|
445
443
|
beforeServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
446
|
-
afterServerInit: import("@modern-js/plugin").AsyncWaterfall<ServerInitHookContext>;
|
|
447
444
|
setupCompiler: import("@modern-js/plugin").ParallelWorkflow<Record<string, unknown>, any[]>;
|
|
448
445
|
beforeRouteSet: import("@modern-js/plugin").AsyncPipeline<Route[], Route[]>;
|
|
449
446
|
afterRouteSet: import("@modern-js/plugin").AsyncPipeline<unknown, unknown>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { IncomingMessage } from 'node:http';
|
|
3
|
+
import type { Logger, Reporter } from '@modern-js/types';
|
|
4
|
+
import type { ServerManifest } from './server';
|
|
5
|
+
export interface RenderOptions {
|
|
6
|
+
logger: Logger;
|
|
7
|
+
/** ssr render html templates */
|
|
8
|
+
templates: Record<string, string>;
|
|
9
|
+
/** Communicating with custom server hook & modern ssr runtime. */
|
|
10
|
+
locals?: Record<string, any>;
|
|
11
|
+
serverManifest: ServerManifest;
|
|
12
|
+
reporter?: Reporter;
|
|
13
|
+
nodeReq?: IncomingMessage;
|
|
14
|
+
}
|
|
15
|
+
export type Render = (request: Request, options: RenderOptions) => Promise<Response>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import type { IncomingMessage, Server, ServerResponse } from 'node:http';
|
|
5
|
+
import type { Readable } from 'node:stream';
|
|
6
|
+
import type { Metrics, Logger, NextFunction, ModernServerContext, InternalPlugins, Reporter, BaseSSRServerContext, ServerRoute, NestedRoute } from '@modern-js/types';
|
|
7
|
+
import { MiddlewareHandler } from 'hono';
|
|
8
|
+
import { ServerOptions } from '../types/config/index';
|
|
9
|
+
import { ServerHookRunner, ServerPlugin } from './plugin';
|
|
10
|
+
import { HonoEnv } from './hono';
|
|
11
|
+
declare module 'http' {
|
|
12
|
+
interface IncomingMessage {
|
|
13
|
+
logger: Logger;
|
|
14
|
+
metrics: Metrics;
|
|
15
|
+
reporter?: Reporter;
|
|
16
|
+
body?: any;
|
|
17
|
+
}
|
|
18
|
+
interface OutgoingMessage {
|
|
19
|
+
set: (key: string, value: any) => this;
|
|
20
|
+
modernFlushedHeaders?: boolean;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export type ServerBaseOptions = {
|
|
24
|
+
/** server working directory, and then also dist directory */
|
|
25
|
+
pwd: string;
|
|
26
|
+
config: ServerOptions;
|
|
27
|
+
serverConfigFile?: string;
|
|
28
|
+
routes?: ServerRoute[];
|
|
29
|
+
plugins?: ServerPlugin[];
|
|
30
|
+
internalPlugins?: InternalPlugins;
|
|
31
|
+
appContext: {
|
|
32
|
+
appDirectory?: string;
|
|
33
|
+
sharedDirectory?: string;
|
|
34
|
+
apiDirectory?: string;
|
|
35
|
+
lambdaDirectory?: string;
|
|
36
|
+
};
|
|
37
|
+
runMode?: 'apiOnly' | 'ssrOnly' | 'webOnly';
|
|
38
|
+
};
|
|
39
|
+
export type SSRServerContext = BaseSSRServerContext & {
|
|
40
|
+
staticGenerate?: boolean;
|
|
41
|
+
};
|
|
42
|
+
export type ServerRender = (ssrContext: SSRServerContext) => Promise<string | Readable | ReadableStream>;
|
|
43
|
+
export type RenderResult = {
|
|
44
|
+
content: string | Buffer;
|
|
45
|
+
contentType: string;
|
|
46
|
+
contentStream?: Readable;
|
|
47
|
+
statusCode?: number;
|
|
48
|
+
redirect?: boolean;
|
|
49
|
+
};
|
|
50
|
+
export type ConfWithBFF = {
|
|
51
|
+
bff?: {
|
|
52
|
+
prefix: string;
|
|
53
|
+
} & ServerOptions['bff'];
|
|
54
|
+
};
|
|
55
|
+
export type Then<T> = T extends PromiseLike<infer U> ? U : T;
|
|
56
|
+
export type { Metrics, Logger, NextFunction };
|
|
57
|
+
export type HookNames = 'afterMatch' | 'afterRender';
|
|
58
|
+
export interface ModernServerInterface {
|
|
59
|
+
pwd: string;
|
|
60
|
+
distDir: string;
|
|
61
|
+
onInit: (runner: ServerHookRunner, app: Server) => Promise<void>;
|
|
62
|
+
getRequestHandler: () => (req: IncomingMessage, res: ServerResponse, next?: () => void) => void;
|
|
63
|
+
createHTTPServer: (handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void) => Promise<Server>;
|
|
64
|
+
render: (req: IncomingMessage, res: ServerResponse, url?: string) => Promise<string | Readable | null>;
|
|
65
|
+
close?: () => Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export type ServerConstructor = (options: ServerBaseOptions) => ModernServerInterface;
|
|
68
|
+
export type ModernServerHandler = (context: ModernServerContext, next: NextFunction) => Promise<void> | void;
|
|
69
|
+
export type Middleware<Env extends HonoEnv = any> = MiddlewareHandler<Env>;
|
|
70
|
+
export type RequestHandler = (request: Request, ...args: any[]) => Response | Promise<Response>;
|
|
71
|
+
type ServerLoaderBundle = {
|
|
72
|
+
routes: NestedRoute[];
|
|
73
|
+
handleRequest: (options: {
|
|
74
|
+
request: Request;
|
|
75
|
+
serverRoutes: ServerRoute[];
|
|
76
|
+
context: any;
|
|
77
|
+
routes: NestedRoute[];
|
|
78
|
+
}) => Promise<any>;
|
|
79
|
+
};
|
|
80
|
+
type ServerRenderBundle = {
|
|
81
|
+
serverRender: () => any;
|
|
82
|
+
};
|
|
83
|
+
export type ServerManifest = {
|
|
84
|
+
loaderBundles?: Record<string, ServerLoaderBundle>;
|
|
85
|
+
renderBundles?: Record<string, ServerRenderBundle>;
|
|
86
|
+
loadableStats?: Record<string, any>;
|
|
87
|
+
routeManifest?: Record<string, any>;
|
|
88
|
+
};
|
|
89
|
+
type ServerVariables = {
|
|
90
|
+
logger: Logger;
|
|
91
|
+
reporter?: Reporter;
|
|
92
|
+
serverManifest?: ServerManifest;
|
|
93
|
+
/**
|
|
94
|
+
* Communicating with custom server hook & modern ssrContext.
|
|
95
|
+
*
|
|
96
|
+
* Produce by custom server.
|
|
97
|
+
* Custom by ssrRuntime.
|
|
98
|
+
*/
|
|
99
|
+
locals?: Record<string, any>;
|
|
100
|
+
metrics?: Metrics;
|
|
101
|
+
templates?: Record<string, string>;
|
|
102
|
+
};
|
|
103
|
+
export type ServerEnv = {
|
|
104
|
+
Variables: ServerVariables;
|
|
105
|
+
};
|
|
106
|
+
export type { HonoContext, HonoEnv, HonoRequest, Next, HonoMiddleware, } from './hono';
|
package/dist/types/index.d.ts
CHANGED