miter
Version:
A typescript web framework based on ExpressJs based loosely on SailsJs
42 lines (41 loc) • 1.95 kB
TypeScript
/// <reference types="express" />
import 'reflect-metadata';
import { Request, Response, Application as ExpressApp } from 'express';
import { Injector } from '../core/injector';
import { RouterMetadata } from '../metadata/server/router';
import { Logger } from '../services/logger';
import { ErrorHandler } from '../services/error-handler';
import { RouterService } from '../services/router.service';
import './extend-req-res';
export declare type RouteInterceptorNextFunction = () => Promise<void>;
export declare type RouteInterceptor = (req: Request, res: Response, next: RouteInterceptorNextFunction) => Promise<void>;
export declare class RouterReflector {
private injector;
private logger;
private errorHandler;
private routerMeta;
private _router;
constructor(injector: Injector, logger: Logger, errorHandler: ErrorHandler, routerMeta: RouterMetadata, _router: RouterService);
readonly router: RouterService;
private controllersReflected;
private routesReflected;
reflectServerRoutes(app: ExpressApp): void;
reflectRoutes(controllers: any[], parentControllers?: any[]): void;
private controllers;
reflectControllerRoutes(parentControllers: any[], controllerFn: any): void;
private _interceptors;
registerRouteInterceptor(interceptor: RouteInterceptor): void;
private reflectRouteMeta(controllerProto);
private addRoute(parentMeta, controller, routeFnName, controllerMeta, routeMeta);
private getControllerName(controller);
private getParentPolicyDescriptors(parentMeta);
private flattenPolicies(descriptors);
private flattenPolicies_recursive(descriptors, aggregate);
private resolvePolicies(descriptors);
private isPolicyCtor(desc);
private isPolicyT(desc);
unfinishedRoutes: number;
requestIndex: number;
private createFullRouterFn(policies, boundRoute, routeMethodName);
private createPolicyResultsFn(policies, allResults);
}