本文整理汇总了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]);
})
示例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;
}
示例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;
}
示例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);
}
示例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,
}));
}
示例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));
}
示例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();
}
示例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;
}
}
}
示例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,
);
}
示例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);
}),
),
);
}