本文整理汇总了TypeScript中@tsed/di.InjectorService.getProvider方法的典型用法代码示例。如果您正苦于以下问题:TypeScript InjectorService.getProvider方法的具体用法?TypeScript InjectorService.getProvider怎么用?TypeScript InjectorService.getProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@tsed/di.InjectorService
的用法示例。
在下文中一共展示了InjectorService.getProvider方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: resolve
static resolve(obj: any | EndpointMetadata, injector: InjectorService) {
let options: IHandlerOptions;
if (obj instanceof EndpointMetadata) {
const provider = injector.getProvider(obj.target)!;
options = {
token: provider.provide,
target: provider.useClass,
type: HandlerType.CONTROLLER,
method: obj.methodClassName
};
} else {
const provider = injector.getProvider(obj);
if (provider) {
options = {
token: provider.provide,
target: provider.useClass,
type: HandlerType.MIDDLEWARE,
method: "use"
};
} else {
options = {
target: obj,
type: HandlerType.FUNCTION
};
}
}
return new HandlerMetadata(options);
}
示例2: Error
dependencies.forEach((child: Type<any>) => {
const provider = injector.getProvider(child) as ControllerProvider;
/* istanbul ignore next */
if (!provider) {
throw new Error("Controller component not found in the ControllerRegistry");
}
new ControllerBuilder(provider).build(injector);
router.use(provider.path, provider.router);
});
示例3: routeMiddlewares
/**
*
* @param middlewares
* @param injector
*/
private routeMiddlewares(middlewares: any[], injector: InjectorService) {
const {pathsMethods, target} = this.endpoint;
const {router} = injector.getProvider(target)!;
pathsMethods.forEach(({path, method}) => {
if (!!method && router[method]) {
router[method](path, ...middlewares);
} else {
const args: any[] = [path].concat(middlewares);
router.use(...args);
}
});
if (!pathsMethods.length) {
router.use(...middlewares);
}
}
示例4: getHandler
/**
*
*/
private getHandler(locals: Map<string | Function, any>): Function {
const {token, method} = this.handlerMetadata;
const provider = this.injector.getProvider(token);
/* istanbul ignore next */
if (!provider) {
throw new Error(`${nameOf(token)} component not found in the injector`);
}
let instance: any;
if (provider.scope !== ProviderScope.SINGLETON) {
instance = this.injector.invoke<any>(provider.useClass, locals, undefined, true);
locals.set(token, instance);
} else {
instance = this.injector.get<any>(token);
}
return instance[method!].bind(instance);
}