在nestjs中Guard、Interceptor、Pipe三者都是在控制器中使用的,其中Guard、Interceptor使用方式类似,ContextCreator用来获取指定控制器对象、指定方法对象的实例数组
@nestjs/core/helpers/context-creator.ts
import 'reflect-metadata';
import iterate from 'iterare';
import { Controller } from '@nestjs/common/interfaces';
import { isUndefined, isFunction } from '@nestjs/common/utils/shared.utils';
import { ApplicationConfig } from './../application-config';
/*上下文创建器,用来获取全局、类、方法上的元数据
一般用来获取UseGuards、UseInterceptors定义的元数据
*/
export abstract class ContextCreator {
/*创建类数组的实例数组 */
public abstract createConcreteContext<T extends any[], R extends any[]>(metadata: T): R;
/*获取全局元数据 */
public ge