当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript shared.utils类代码示例

本文整理汇总了TypeScript中@nestjs/common/utils/shared.utils的典型用法代码示例。如果您正苦于以下问题:TypeScript utils类的具体用法?TypeScript utils怎么用?TypeScript utils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了utils类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: isFunction

 .filter(prop => {
   const descriptor = Object.getOwnPropertyDescriptor(prototype, prop);
   if (descriptor.set || descriptor.get) {
     return false;
   }
   return !isConstructor(prop) && isFunction(prototype[prop]);
 })
开发者ID:SARAVANA1501,项目名称:nest,代码行数:7,代码来源:metadata-scanner.ts

示例2: iterate

 public createConcreteContext<T extends any[], R extends any[]>(
   metadata: T,
 ): R {
   if (isUndefined(metadata) || isEmpty(metadata)) {
     return [] as R;
   }
   return iterate(metadata)
     .filter((guard: any) => guard && (guard.name || guard.canActivate))
     .map(guard => this.getGuardInstance(guard))
     .filter((guard: CanActivate) => guard && isFunction(guard.canActivate))
     .toArray() as R;
 }
开发者ID:a1r0,项目名称:nest,代码行数:12,代码来源:guards-context-creator.ts

示例3: iterate

 public createConcreteContext<T extends any[], R extends any[]>(
   metadata: T,
 ): R {
   if (isUndefined(metadata) || isEmpty(metadata)) {
     return [] as R;
   }
   return iterate(metadata)
     .filter((pipe: any) => pipe && (pipe.name || pipe.transform))
     .map(pipe => this.getPipeInstance(pipe))
     .filter(pipe => pipe && pipe.transform && isFunction(pipe.transform))
     .map(pipe => pipe.transform.bind(pipe))
     .toArray() as R;
 }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:13,代码来源:pipes-context-creator.ts

示例4: RuntimeException

  public async loadInstance<T>(
    wrapper: InstanceWrapper<T>,
    collection: Map<string, InstanceWrapper<any>>,
    module: Module,
  ) {
    if (wrapper.isPending) {
      return wrapper.done$;
    }
    const done = this.applyDoneHook(wrapper);
    const { name, inject } = wrapper;

    const targetWrapper = collection.get(name);
    if (isUndefined(targetWrapper)) {
      throw new RuntimeException();
    }
    if (targetWrapper.isResolved) {
      return;
    }
    const callback = async instances => {
      const properties = await this.resolveProperties(wrapper, module, inject);
      const instance = await this.instantiateClass(
        instances,
        wrapper,
        targetWrapper,
      );
      this.applyProperties(instance, properties);
      done();
    };
    await this.resolveConstructorParams<T>(wrapper, module, inject, callback);
  }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:30,代码来源:injector.ts

示例5: mapRouteToRouteInfo

 public mapRouteToRouteInfo(
   route: Type<any> | RouteInfo | string,
 ): RouteInfo[] {
   if (isString(route)) {
     return [
       {
         path: this.validateRoutePath(route),
         method: RequestMethod.ALL,
       },
     ];
   }
   const routePath: string = Reflect.getMetadata(PATH_METADATA, route);
   if (this.isRouteInfo(routePath, route)) {
     return [
       {
         path: this.validateRoutePath(route.path),
         method: route.method,
       },
     ];
   }
   const paths = this.routerExplorer.scanForPaths(
     Object.create(route),
     route.prototype,
   );
   return paths.map(item => ({
     path:
       this.validateGlobalPath(routePath) + this.validateRoutePath(item.path),
     method: item.requestMethod,
   }));
 }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:30,代码来源:routes-mapper.ts

示例6: isNil

  public async resolveConstructorParams<T>(
    wrapper: InstanceWrapper<T>,
    module: Module,
    inject: any[],
    callback: (args) => void,
  ) {
    let isResolved = true;
    const args = isNil(inject)
      ? this.reflectConstructorParams(wrapper.metatype)
      : inject;

    const instances = await Promise.all(
      args.map(async (param, index) => {
        const paramWrapper = await this.resolveSingleParam<T>(
          wrapper,
          param,
          { index, length: args.length },
          module,
        );
        if (!paramWrapper.isResolved && !paramWrapper.forwardRef) {
          isResolved = false;
        }
        return paramWrapper.instance;
      }),
    );
    isResolved && (await callback(instances));
  }
开发者ID:a1r0,项目名称:nest,代码行数:27,代码来源:injector.ts

示例7: intercept

 public async intercept(
   interceptors: NestInterceptor[],
   args: any[],
   instance: Controller,
   callback: (...args) => any,
   next: () => Promise<any>,
 ): Promise<any> {
   if (!interceptors || isEmpty(interceptors)) {
     return await await next();
   }
   const context = this.createContext(args, instance, callback);
   const start$ = defer(() => this.transformDeffered(next));
   /***
     const nextFn =  (i: number) => async () => {
     if (i <= interceptors.length) {
       return start$;
     }
     return await interceptors[i].intercept(context, nextFn(i + 1) as any);
   };
   */
   const result$ = await interceptors.reduce(
     async (stream$, interceptor) =>
       await interceptor.intercept(context, await stream$),
     Promise.resolve(start$),
   );
   return await result$.toPromise();
 }
开发者ID:timokae,项目名称:nest,代码行数:27,代码来源:interceptors-consumer.ts

示例8: String

 public *scanForServerHooks(instance: NestGateway): IterableIterator<string> {
   for (const propertyKey in instance) {
     if (isFunction(propertyKey)) {
       continue;
     }
     const property = String(propertyKey);
     const isServer = Reflect.getMetadata(
       GATEWAY_SERVER_METADATA,
       instance,
       property,
     );
     if (!isUndefined(isServer)) {
       yield property;
     }
   }
 }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:16,代码来源:gateway-metadata-explorer.ts

示例9: UndefinedDependencyException

 public async resolveSingleParam<T>(
   wrapper: InstanceWrapper<T>,
   param: Type<any> | string | symbol | any,
   dependencyContext: InjectorDependencyContext,
   module: Module,
 ) {
   if (isUndefined(param)) {
     throw new UndefinedDependencyException(wrapper.name, dependencyContext, module);
   }
   const token = this.resolveParamToken(wrapper, param);
   return this.resolveComponentInstance<T>(
     module,
     isFunction(token) ? (token as Type<any>).name : token,
     dependencyContext,
     wrapper,
   );
 }
开发者ID:SARAVANA1501,项目名称:nest,代码行数:17,代码来源:injector.ts

示例10: _throw

 public send<TResult = any, TInput = any>(
   pattern: any,
   data: TInput,
 ): Observable<TResult> {
   if (isNil(pattern) || isNil(data)) {
     return _throw(new InvalidMessageException());
   }
   return defer(async () => await this.connect()).pipe(
     mergeMap(
       () =>
         new Observable((observer: Observer<TResult>) => {
           const callback = this.createObserver(observer);
           return this.publish({ pattern, data }, callback);
         }),
     ),
   );
 }
开发者ID:a1r0,项目名称:nest,代码行数:17,代码来源:client-proxy.ts


注:本文中的@nestjs/common/utils/shared.utils类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。