Skip to content

Commit 30f6205

Browse files
fix(core): inquirer injection by property-injection fix
1 parent d91d2a6 commit 30f6205

5 files changed

Lines changed: 18 additions & 8 deletions

File tree

integration/scopes/src/inject-inquirer/hello-request/hello-request.service.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
import { Injectable, Scope } from '@nestjs/common';
1+
import { Inject, Injectable, Scope } from '@nestjs/common';
2+
import { INQUIRER } from '@nestjs/core';
23
import { RequestLogger } from './request-logger.service';
34

45
@Injectable({ scope: Scope.REQUEST })
56
export class HelloRequestService {
67
static logger = { feature: 'request' };
78

8-
constructor(private readonly logger: RequestLogger) {}
9+
constructor(
10+
private readonly logger: RequestLogger,
11+
@Inject(INQUIRER) private readonly inquirer,
12+
) {}
913

1014
greeting() {
1115
this.logger.log('Hello request!');

integration/scopes/src/inject-inquirer/hello-request/request-logger.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Inject, Logger, Injectable, Scope } from '@nestjs/common';
2-
import { REQUEST, INQUIRER } from '@nestjs/core';
1+
import { Inject, Injectable, Logger, Scope } from '@nestjs/common';
2+
import { INQUIRER, REQUEST } from '@nestjs/core';
33

44
@Injectable({ scope: Scope.TRANSIENT })
55
export class RequestLogger {

integration/scopes/src/inject-inquirer/hello-transient/transient-logger.service.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import { INQUIRER } from '@nestjs/core';
33

44
@Injectable({ scope: Scope.TRANSIENT })
55
export class TransientLogger {
6-
// @Inject(INQUIRER) inquirer: any;
6+
@Inject(INQUIRER) inquirer: any = null;
77
config: object;
88

99
constructor(
10-
@Inject(INQUIRER) { constructor },
10+
@Inject(INQUIRER) private readonly inquirerInCtor,
1111
private readonly logger: Logger,
1212
) {
13-
this.config = (constructor && constructor.logger) || {};
13+
this.config =
14+
(inquirerInCtor.constructor && inquirerInCtor.constructor.logger) || {};
1415
}
1516

1617
log(message: string) {

packages/core/injector/injector.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ export class Injector {
201201
inject,
202202
contextId,
203203
wrapper,
204+
inquirer,
204205
);
205206
const instance = await this.instantiateClass(
206207
instances,
@@ -531,6 +532,7 @@ export class Injector {
531532
inject?: InjectorDependency[],
532533
contextId = STATIC_CONTEXT,
533534
inquirer?: InstanceWrapper,
535+
parentInquirer?: InstanceWrapper,
534536
): Promise<PropertyDependency[]> {
535537
if (!isNil(inject)) {
536538
return [];
@@ -547,6 +549,9 @@ export class Injector {
547549
key: item.key,
548550
name: item.name as string,
549551
};
552+
if (this.isInquirer(item.name, parentInquirer)) {
553+
return parentInquirer && parentInquirer.instance;
554+
}
550555
const paramWrapper = await this.resolveSingleParam<T>(
551556
wrapper,
552557
item.name,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const INQUIRER = 'INQUIRER';
1+
export const INQUIRER = Symbol('INQUIRER');

0 commit comments

Comments
 (0)