UNPKG

kobp

Version:
45 lines (44 loc) 1.59 kB
import type { KobpServiceContext, KobpServiceState } from '../context'; import type { Context, Middleware } from 'koa'; import Router from 'koa-router'; export declare type HttpMethod = 'post' | 'get' | 'delete' | 'put' | 'patch'; export interface RouteMapMeta { method: HttpMethod | HttpMethod[]; path?: string; middlewares?: Middleware[]; } export interface RouteMap { [key: string]: RouteMapMeta; } export declare class KobpRouter extends Router<KobpServiceState, KobpServiceContext> { } export declare class BaseRoutedController { protected allRoutesMiddlewares: Middleware[]; constructor(allRoutesMiddlewares?: Middleware[]); getRouteMaps(): RouteMap; handleSuccess(ctx: KobpServiceContext, data: any): Promise<void>; /** * Counter path of getRouter(). Use this method to register the controller to given router. * * @param path * @param koaRouter */ register(path: string, koaRouter: KobpRouter, ...middlewares: Router.IMiddleware<KobpServiceState, KobpServiceContext>[]): void; getRouter(): KobpRouter; /** * Tell the context to disable default JSON output handler * * @example * ``` * class SomeController { * @Route('/') * async call(context: KobpServiceContext): Promise<void> { * this.setDoNotHandleSuccess(context) * context.redirect('/login') * } * } * ``` */ protected setDoNotHandleSuccess(context: KobpServiceContext | Context): void; getMiddlewares(): Router.IMiddleware<KobpServiceState, KobpServiceContext>[]; }