dinoloop-es8
Version:
A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript
45 lines (44 loc) • 1.4 kB
TypeScript
import { IParseProps } from './types';
import { DinoModel } from '../entities';
export interface IMiddlewareClass {
useClass?: Function;
data?: any;
}
export declare type IMiddlewareProvider = Function | IMiddlewareClass;
export interface IControllerAttribute {
filters?: IMiddlewareProvider[];
middlewares?: IMiddlewareProvider[];
exceptions?: IMiddlewareProvider[];
result?: IMiddlewareProvider[];
use?: any[];
}
export interface IControllerAttributeExtended extends IControllerAttribute {
prefix?: string;
}
export interface IControllerAttributeProvider {
prefix?: string;
afterActionFilters?: IMiddlewareProvider[];
beforeActionFilters?: IMiddlewareProvider[];
middlewares?: IMiddlewareProvider[];
exceptions?: IMiddlewareProvider[];
result?: IMiddlewareProvider[];
use?: any[];
}
export declare type IRouterCallBack = () => any;
export declare type IParseHandler = (props: IParseProps, model?: DinoModel) => any;
export interface IParseAttribute {
key?: string;
handler?: IParseHandler;
controller?: any;
action?: string;
data?: any;
isQueryParam?: boolean;
paramIndex?: number;
}
export interface IActionMethodAttribute {
route?: string;
httpVerb?: string;
isAsync?: boolean;
sendsResponse?: boolean;
actionArguments?: IParseAttribute[];
}