Я создал простой сервис журналирования, который предоставляет функциональные возможности отладки через 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');
/* ... */
}
}
Теперь я хотел быизбавиться от стандартного кода в конструкторе, создав декоратор @InjectLogger
, аналогичный @InjectRepository
для @nestjs/typeorm
.По сути, я хочу добиться того, чтобы сделать это вместо этого:
@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');
/* ... */
}
}
Как мне добиться чего-то подобного?