UNPKG

@mvx/mvc

Version:

@mvx/mvc is mvc framework on server, base on koa, @tsdi frameworks

180 lines (179 loc) 3.91 kB
import { MethodMetadata, ClassMetadata, TypeMetadata, Type, Modules } from '@tsdi/ioc'; import { DIModuleMetadata } from '@tsdi/boot'; import { RequestMethod } from './RequestMethod'; import { MiddlewareType, MvcMiddlewareType } from './middlewares/IMiddleware'; import { CorsOptions, IConfiguration } from './IConfiguration'; import { CompositeMiddleware, MvcMiddleware } from './middlewares/MvcMiddleware'; import { MvcContext } from './MvcContext'; /** * route metadata. * * @export * @interface RouteMetadata * @extends {MethodMetadata} */ export interface IRouteMetadata extends MethodMetadata { /** * route. * * @type {string} * @memberof RouteMetadata */ route?: string; /** * http content type. * * @type {string} * @memberof RouteMetadata */ contentType?: string; /** * middlewares * * @type {MiddlewareType[]} * @memberof RouteMetadata */ middlewares?: MiddlewareType[]; } /** * route metadata. * * @export * @interface RouteMetadata * @extends {IRouteMetadata} */ export interface RouteMetadata extends IRouteMetadata { /** * request method. * * @type {RequestMethod} * @memberof RouteMetadata */ method?: RequestMethod; } /** * get metadata. */ export interface GetMetadata extends IRouteMetadata { } /** * delete metadata */ export interface DeleteMetadata extends IRouteMetadata { } /** * head metadata */ export interface HeadMetadata extends IRouteMetadata { } /** * options metadata. */ export interface OptionsMetadata extends IRouteMetadata { } export interface PatchMetadata extends IRouteMetadata { } /** * post metadata. */ export interface PostMetadata extends IRouteMetadata { } /** * put metadata. */ export interface PutMetadata extends IRouteMetadata { } /** * controller metadata * * @export * @interface RouterMetadata * @extends {ClassMetadata} */ export interface RouterMetadata extends ClassMetadata { /** * route prefix. * * @type {string} * @memberof RouterMetadata */ routePrefix?: string; } /** * middleware metadata. * * @export * @interface MiddlewareMetadata * @extends {ClassMetadata} */ export interface MiddlewareMetadata extends ClassMetadata { /** * define middleware name. * * @type {string} * @memberof MiddlewareMetadata */ name?: string; /** * middleware used scope. * * @type {('global' | 'route')} * @memberof MiddlewareMetadata */ scope?: 'global' | 'route'; /** * the middleware reg in. * * @type {Type<CompositeMiddleware>} * @memberof MiddlewareMetadata */ regIn?: Type<CompositeMiddleware>; /** * define middleware setup before one middleware. * * @type {(string | Type<MvcMiddleware>)} * @memberof MiddlewareMetadata */ before?: string | Type<MvcMiddleware>; /** * define middleware setup after one middleware. * * @type {(string | Type<MvcMiddleware>)} * @memberof MiddlewareMetadata */ after?: string | Type<MvcMiddleware>; } /** * controller metadata * * @export * @interface ControllerMetadata * @extends {ClassMetadata} */ export interface ControllerMetadata extends ClassMetadata { /** * route prefix. * * @type {string} * @memberof ControllerMetadata */ routePrefix?: string; /** * the middlewares for the route. * * @type {MiddlewareType[]} * @memberof ControllerMetadata */ middlewares?: MiddlewareType[]; } /** * cors metadata. */ export interface CorsMetadata extends TypeMetadata, CorsOptions { } export interface MvcModuleMetadata extends DIModuleMetadata, IConfiguration { contextType?: Type<MvcContext>; middlewares?: MvcMiddlewareType[]; controllers?: Modules[]; passports?: any; }