@slowvoid.dev/express
Version:
node decorators - decorators for express library
82 lines (81 loc) • 1.51 kB
TypeScript
import { RouterOptions } from 'express';
import { Middleware } from './middleware';
/**
* All possible parameter decorator types
*
* @export
* @enum {number}
*/
export declare enum ParameterType {
REQUEST = 0,
RESPONSE = 1,
PARAMS = 2,
QUERY = 3,
BODY = 4,
HEADERS = 5,
COOKIES = 6,
NEXT = 7
}
/**
* Cached(meta) parameter configuration
*
* @export
* @interface ParameterConfiguration
*/
export interface ParameterConfiguration {
index: number;
type: ParameterType;
name?: string;
data?: any;
}
/**
* Cached(meta) route configuration
*
* @export
* @interface Route
*/
export interface Route {
method: string;
url: string;
middleware: Middleware[];
}
/**
* Method metadata object
*/
export interface MethodMeta {
routes: Route[];
status?: number;
}
/**
* Express decorators controller metadata
*
* @export
* @interface ExpressMeta
*/
export interface ExpressMeta {
url: string;
routerOptions?: RouterOptions;
routes: {
[instanceMethodName: string]: MethodMeta;
};
middleware: Middleware[];
params: {
[key: string]: ParameterConfiguration[];
};
}
/**
* Express decorators controller
*
* @export
* @interface ExpressMeta
*/
export interface ExpressClass {
__express_meta__?: ExpressMeta;
}
/**
* Get or initiate metadata on a target
*
* @param {ExpressClass} target
* @returns {ExpressMeta}
*/
export declare function getMeta(target: ExpressClass): ExpressMeta;