UNPKG

wooks

Version:
66 lines (62 loc) 2.55 kB
import { TConsoleBase, TProstoLoggerOptions } from '@prostojs/logger'; import { ProstoRouter, TParsedSegment, TProstoRouterPathHandle } from '@prostojs/router'; export { TProstoRouterPathHandle } from '@prostojs/router'; import { TEventOptions } from '@wooksjs/event-core'; export { useEventId, useEventLogger, useRouteParams } from '@wooksjs/event-core'; type TWooksHandler<ResType = unknown> = () => Promise<ResType> | ResType; interface TWooksOptions { logger?: TConsoleBase; router?: { ignoreTrailingSlash?: boolean; ignoreCase?: boolean; cacheLimit?: number; }; } declare class Wooks { protected router: ProstoRouter<TWooksHandler>; protected logger: TConsoleBase; constructor(opts?: TWooksOptions); getRouter(): ProstoRouter<TWooksHandler>; getLogger(topic: string): TConsoleBase; getLoggerOptions(): TProstoLoggerOptions; lookup(method: string, path: string): { handlers: TWooksHandler[] | null; segments: TParsedSegment[] | null; firstStatic: string | null; path: string | null; }; on<ResType = unknown, ParamsType = Record<string, string | string[]>>(method: string, path: string, handler: TWooksHandler<ResType>): TProstoRouterPathHandle<ParamsType>; } /** * Clear global wooks instance * * (useful for tests or dev-mode) */ declare function clearGlobalWooks(): void; /** * Creates global wooks singleton instance to share across adapters * @param logger * @param routerOpts * @returns */ declare function getGlobalWooks(logger?: TConsoleBase, routerOpts?: TWooksOptions['router']): Wooks; declare class WooksAdapterBase { protected wooks: Wooks; constructor(wooks?: Wooks | WooksAdapterBase, logger?: TConsoleBase, routerOpts?: TWooksOptions['router']); getWooks(): Wooks; /** * Get logger instance for application logs * ```js * const app = createHttpApp() * const logger = app.getLogger('[app-logger]') * logger.log('My App log message') * ``` * @param topic topic for logger * @returns logger instance */ getLogger(topic: string): TConsoleBase; protected getLoggerOptions(): TProstoLoggerOptions; protected mergeEventOptions(opts?: TEventOptions): TEventOptions; on<ResType = unknown, ParamsType = Record<string, string | string[]>>(method: string, path: string, handler: TWooksHandler<ResType>): TProstoRouterPathHandle<ParamsType>; } export { type TWooksHandler, type TWooksOptions, Wooks, WooksAdapterBase, clearGlobalWooks, getGlobalWooks };