UNPKG

@ark7/router

Version:
55 lines (54 loc) 2.02 kB
import 'reflect-metadata'; import * as Router from 'koa-router'; import { A7Controller } from './controller'; export declare enum Method { GET = "get", POST = "post", PUT = "put", DELETE = "delete" } export declare function injectHandler(handler: string): (ctx: any, next: any) => Promise<void>; /** * Metadata injected to the A7Controller class. */ export declare class A7ControllerMetadata { private className; /** Global middlewares applied to all the handlers. */ private middlewares; /** Subsidiaries under the current controller. */ private subsidiaries; /** Koa router options. */ private routerOptions; constructor(className: string, /** Global middlewares applied to all the handlers. */ middlewares?: Router.IMiddleware[], /** Subsidiaries under the current controller. */ subsidiaries?: A7ControllerSubsidiary[], /** Koa router options. */ routerOptions?: Router.IRouterOptions); static getMetadata(cls: any): A7ControllerMetadata; koaRouter(controller: A7Controller): Router; extendOptions(options: Router.IRouterOptions): this; defineMetadata(cls: any): this; pushMiddlewaresInFront(middlewares: Router.IMiddleware[]): this; clone(): A7ControllerMetadata; getSubsidiaryByName(name: string): A7ControllerSubsidiary; getOrCreateSubsidiary(name: string, path?: string): A7ControllerSubsidiary; } export declare enum A7ControllerSubsidiaryType { HANDLER = "HANDLER", SUB_CONTROLLER = "SUB_CONTROLLER" } export declare class A7ControllerSubsidiary { name: string; type?: A7ControllerSubsidiaryType; path?: string; middlewares: Router.IMiddleware[]; method?: Method; cls?: typeof A7Controller; constructor(name: string); get composedMiddleware(): Router.IMiddleware; pushMiddlewaresInFront(middlewares: Router.IMiddleware[]): this; pushMiddlewaresBack(middlewares: Router.IMiddleware[]): this; } export declare const METADATA_KEY = "ark7:router:metadata";