kobp
Version:
Koa Boilerplate with MikroORM
21 lines (20 loc) • 907 B
text/typescript
import { Middleware } from 'koa'
import { HttpMethod, RouteMapMeta } from '../base.controller'
export function Route(): MethodDecorator
export function Route(meta: RouteMapMeta): MethodDecorator
export function Route(method: HttpMethod | HttpMethod[], regExpToPath?: string, ...middlewares: Middleware[]): MethodDecorator
export function Route(methodOrMeta: RouteMapMeta | HttpMethod | HttpMethod[] = 'get', regExpToPath: string = '/', ...middlewares: Middleware[]): MethodDecorator {
/**
* @param {RouteMapController} target
*/
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
target.__drm = (target.__drm || {})
target.__drm[propertyKey] = (typeof methodOrMeta === 'string' || methodOrMeta instanceof Array)
? {
method: methodOrMeta,
path: regExpToPath,
middlewares: middlewares || [],
}
: methodOrMeta
}
}