@darlean/webgateways-suite
Version:
Web Gateways Suite that acts as Web/API Gateway that invokes actors to serve HTTP requests
31 lines (30 loc) • 1.07 kB
TypeScript
/// <reference types="node" />
import { IActivatable, IDeactivatable, IWebGatewayRequest, IWebGatewayResponse } from '@darlean/base';
import { IncomingMessage, Server, ServerResponse } from 'http';
import { IGatewayFlowCfg } from './intf';
export interface IHandler {
method?: string;
path?: string;
action: (req: IWebGatewayRequest) => Promise<IWebGatewayResponse>;
flow?: IGatewayFlowCfg;
maxContentLength?: number;
}
export interface IGateway {
name: string;
port: number;
handlers: IHandler[];
keepAliveTimeout: number;
maxContentLength?: number;
}
export declare class WebGatewayActor implements IActivatable, IDeactivatable {
protected server: Server;
protected config: IGateway;
protected port?: number;
private close;
private pathMatchers;
constructor(config: IGateway);
activate(): Promise<void>;
deactivate(): Promise<void>;
touch(): Promise<void>;
protected handleRequest(req: IncomingMessage, res: ServerResponse<IncomingMessage>): Promise<void>;
}