【发布时间】:2019-03-05 17:08:25
【问题描述】:
我创建了一个简单的日志记录服务,它通过 debug 在后台提供调试日志记录功能,可按如下方式使用:
@Resolver('Category')
export class CategoryResolver {
private log: DebugLog;
constructor(private readonly categoryService: CategoryService, loggingService: LoggingService) {
// needs this to determine logger prefix
this.log = loggingService.getDebugLogger(this);
}
@ResolveProperty()
async mainCategory(category: Category, args, context): Promise<MainCategory> {
this.log('resolving mainCategory');
/* ... */
}
}
现在,我想通过创建一个类似于@InjectRepository for @nestjs/typeorm 的@InjectLogger 装饰器来摆脱构造函数中的样板代码。基本上我想实现能够做到这一点:
@Resolver('Category')
export class CategoryResolver {
constructor(
private readonly categoryService: CategoryService,
@InjectLogger(CategoryResolver) private readonly log: DebugLog
) { }
@ResolveProperty()
async mainCategory(category: Category, args, context): Promise<MainCategory> {
this.log('resolving mainCategory');
/* ... */
}
}
我将如何实现这样的目标?
【问题讨论】:
标签: typescript dependency-injection nestjs