@nodeswork/kiws
Version:
Koa-based Injectable Web Service
36 lines (35 loc) • 1.17 kB
TypeScript
/// <reference types="koa-router" />
/// <reference types="koa" />
import 'reflect-metadata';
import * as Koa from 'koa';
import * as Router from 'koa-router';
import { Constructor } from './injection';
export declare const MIDDLEWARE = "MIDDLEWARE";
export declare const MIDDLEWARE_TARGET_APP = "app";
export declare const MIDDLEWARE_TARGET_ROUTER = "router";
/**
* MiddlewareProvider class decorator will register the middlewares declared in
* the provider to Koa and KoaRouter.
*/
export declare function MiddlewareProvider(options?: {
tags?: string[];
meta?: object;
}): (constructor: Constructor) => void;
export declare function AppMiddleware(options?: {
later?: boolean;
}): (target: any, propertyName: string) => void;
export declare function RouterMiddleware(options?: {
later?: boolean;
}): (target: any, propertyName: string) => void;
export interface MiddlewareMetadata {
target: string;
provider: string;
name: string;
later: boolean;
}
export interface Middleware extends MiddlewareMetadata {
fn: Router.IMiddleware | Koa.Middleware;
}
export interface MiddlewareProvider {
$getMiddlewares(): Middleware[];
}