lemon-core
Version:
Lemon Serverless Micro-Service Platform
47 lines (46 loc) • 1.35 kB
TypeScript
import { LemonEngine } from '../engine/types';
import { LambdaWEBHandler } from '../cores/lambda/lambda-web-handler';
/**
* type: `ExpressFactory`
* - factory to create express server.
*/
export interface ExpressFactory {
($engine: LemonEngine, $web: LambdaWEBHandler, options?: {
argv?: string[];
prefix?: string;
genRequestId?: () => string;
}): ExpressFactoryResult;
}
/**
* type: `ExpressFactoryResult`
* - result of factory.
*/
export interface ExpressFactoryResult {
/** function of `express()` from `npm/express` */
express: () => any;
/** instance of `express()` */
app: any;
/** create server listener */
createServer: (...args: any[]) => any;
}
/**
* type: `BuildExpressOptions`
* - options for `buildExpress()`
*/
export interface BuildExpressOptions {
/** run arguments */
argv?: string[];
/** prefix as ROUTE_PREFIX */
prefix?: string;
/** request-id generator */
genRequestId?: () => string;
/** (optional) loader of module */
loadModule?: <T = any>(mod: string) => T;
}
/**
* create Server Instance.
*
* @param $engine - LemonEngine by `buildEngine()`
* @param $web - LambdaWEBHandler in `$cores`
*/
export declare const buildExpress: ($engine: LemonEngine, $web: LambdaWEBHandler, options?: BuildExpressOptions) => ExpressFactoryResult;