@nestjs/core
Version:
Nest - modern, fast, powerful node.js web framework (@core)
41 lines (40 loc) • 2.44 kB
TypeScript
import { HttpServer } from '@nestjs/common';
import { RequestMethod } from '@nestjs/common/enums/request-method.enum';
import { Controller } from '@nestjs/common/interfaces/controllers/controller.interface';
import { Type } from '@nestjs/common/interfaces/type.interface';
import { ApplicationConfig } from '../application-config';
import { NestContainer } from '../injector/container';
import { Injector } from '../injector/injector';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import { MetadataScanner } from '../metadata-scanner';
import { ExceptionsFilter } from './interfaces/exceptions-filter.interface';
import { RouterProxy, RouterProxyCallback } from './router-proxy';
export interface RoutePathProperties {
path: string[];
requestMethod: RequestMethod;
targetCallback: RouterProxyCallback;
methodName: string;
}
export declare class RouterExplorer {
private readonly metadataScanner;
private readonly container;
private readonly injector?;
private readonly routerProxy?;
private readonly exceptionsFilter?;
private readonly executionContextCreator;
private readonly routerMethodFactory;
private readonly logger;
private readonly exceptionFiltersCache;
constructor(metadataScanner: MetadataScanner, container: NestContainer, injector?: Injector, routerProxy?: RouterProxy, exceptionsFilter?: ExceptionsFilter, config?: ApplicationConfig);
explore<T extends HttpServer = any>(instanceWrapper: InstanceWrapper, module: string, applicationRef: T, basePath: string): void;
extractRouterPath(metatype: Type<Controller>, prefix?: string): string;
validateRoutePath(path: string): string;
scanForPaths(instance: Controller, prototype?: any): RoutePathProperties[];
exploreMethodMetadata(instance: Controller, instancePrototype: any, methodName: string): RoutePathProperties;
applyPathsToRouterProxy<T extends HttpServer>(router: T, routePaths: RoutePathProperties[], instanceWrapper: InstanceWrapper, module: string, basePath: string): void;
private applyCallbackToRouter;
private createCallbackProxy;
createRequestScopedHandler(instanceWrapper: InstanceWrapper, requestMethod: RequestMethod, module: Module, moduleKey: string, methodName: string): <TRequest, TResponse>(req: TRequest, res: TResponse, next: () => void) => Promise<void>;
private registerRequestProvider;
}