kobp
Version:
Koa Boilerplate with MikroORM
45 lines (44 loc) • 1.59 kB
TypeScript
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>[];
}