libmodulor
Version:
A TypeScript library to create platform-agnostic applications
49 lines (48 loc) • 3.39 kB
TypeScript
import { type Express, type RequestHandler } from 'express';
import type { AppManifest } from '../../app/index.js';
import type { DirPath, URLPath } from '../../dt/index.js';
import type { ProductUCsLoaderOutput } from '../../product/index.js';
import type { Configurable, EnvironmentManager, Logger, LoggerSettings, SettingsManager } from '../../std/index.js';
import type { UCDef, UCHTTPContract, UCInput, UCManager, UCOPIBase } from '../../uc/index.js';
import type { MCPHTTPRequestHandlerBuilder } from '../lib/mcp-server/http/MCPHTTPRequestHandlerBuilder.js';
import type { OpenAPISpec } from '../lib/openapi/types.js';
import { CustomerFacingErrorBuilder } from '../lib/server/CustomerFacingErrorBuilder.js';
import { EntrypointsBuilder } from '../lib/server/EntrypointsBuilder.js';
import type { ServerManager, ServerManagerSettings } from '../lib/server/ServerManager.js';
import { ServerRequestHandler } from '../lib/server/ServerRequestHandler.js';
import { CORSMiddlewareBuilder } from '../lib/server-express/CORSMiddlewareBuilder.js';
import { HelmetMiddlewareBuilder } from '../lib/server-express/HelmetMiddlewareBuilder.js';
import { NodeHTTPServerCreator } from '../lib/server-node/NodeHTTPServerCreator.js';
import type { ListenSettings, StopSettings } from '../lib/server-node/types.js';
type S = ListenSettings & Pick<LoggerSettings, 'logger_level'> & Pick<ServerManagerSettings, 'server_tmp_path'> & StopSettings;
export declare class NodeExpressServerManager implements Configurable<S>, ServerManager {
private corsMiddlewareBuilder;
private customerFacingErrorBuilder;
private entrypointsBuilder;
protected environmentManager: EnvironmentManager;
private helmetMiddlewareBuilder;
protected logger: Logger;
private nodeHTTPServerCreator;
private mcpHTTPRequestHandlerBuilder;
private serverRequestHandler;
private settingsManager;
private ucManager;
protected runtime: Express;
private server;
constructor(corsMiddlewareBuilder: CORSMiddlewareBuilder, customerFacingErrorBuilder: CustomerFacingErrorBuilder, entrypointsBuilder: EntrypointsBuilder, environmentManager: EnvironmentManager, helmetMiddlewareBuilder: HelmetMiddlewareBuilder, logger: Logger, nodeHTTPServerCreator: NodeHTTPServerCreator, mcpHTTPRequestHandlerBuilder: MCPHTTPRequestHandlerBuilder<RequestHandler>, serverRequestHandler: ServerRequestHandler, settingsManager: SettingsManager<S>, ucManager: UCManager);
s(): S;
getRuntime(): Express;
overrideUCManager(ucManager: UCManager): void;
init(): Promise<void>;
initSync(): void;
mount<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(appManifest: AppManifest, ucd: UCDef<I, OPI0, OPI1>, contract: UCHTTPContract): Promise<void>;
mountSync<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(appManifest: AppManifest, ucd: UCDef<I, OPI0, OPI1>, contract: UCHTTPContract): void;
mountMCP(ucs: ProductUCsLoaderOutput, at: URLPath): Promise<void>;
mountOpenAPISpec(spec: OpenAPISpec, at: URLPath): Promise<void>;
mountStaticDir(dirPath: DirPath): Promise<void>;
start(): Promise<void>;
stop(): Promise<void>;
warmUp(): Promise<void>;
private mountCommon;
}
export {};