import {createLogger} from "@gongt/ts-stl-library/debug/create-logger"; import {LOG_LEVEL} from "@gongt/ts-stl-library/debug/levels"; import {Application, Router} from "express-serve-static-core"; import {expressWait} from "../../express/express-init"; const info = createLogger(LOG_LEVEL.INFO, 'express.provide'); export interface IExpressProvide { displayName?: string; __express_provide(app: Application|Router): void|Promise; } export function provideWithExpress(app: Application|Router, provider: IExpressProvide) { const ret = provider.__express_provide(app); info('provideWithExpress(' + (provider.displayName || provider.constructor.name) + ')'); if (ret instanceof Promise) { expressWait('provideWithExpress(' + (provider.displayName || provider.constructor.name) + ')', ret); } }