Skip to content

Commit 3b61796

Browse files
committed
feat: refactor the logs to be more consolidated and have color
1 parent 8a1e89e commit 3b61796

1 file changed

Lines changed: 45 additions & 10 deletions

File tree

packages/core/injector/injector.ts

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
isString,
1616
isUndefined,
1717
} from '@nestjs/common/utils/shared.utils';
18+
import { clc } from '@nestjs/common/utils/cli-colors.util';
1819
import { iterate } from 'iterare';
1920
import { RuntimeException } from '../errors/exceptions/runtime.exception';
2021
import { UndefinedDependencyException } from '../errors/exceptions/undefined-dependency.exception';
@@ -70,7 +71,6 @@ export interface InjectorDependencyContext {
7071
}
7172

7273
export class Injector {
73-
7474
private logger: LoggerService = new InjectorLogger();
7575
public loadPrototype<T>(
7676
{ token }: InstanceWrapper<T>,
@@ -355,9 +355,8 @@ export class Injector {
355355
inquirer?: InstanceWrapper,
356356
keyOrIndex?: string | number,
357357
): Promise<InstanceWrapper> {
358-
const tokenName = token.toString().includes(' ') ? token.toString().split(' ')[1] : token.toString();
359-
this.logger.log(`Resolving dependency ${tokenName} in the ${inquirer?.name ?? 'unknown'} provider.`);
360-
this.logger.log(`Looking in ${moduleRef?.metatype?.name ?? 'unknown'} for ${tokenName}`)
358+
this.resolvingDependenciesLog(token, inquirer);
359+
this.lookingForLog(token, moduleRef);
361360
const providers = moduleRef.providers;
362361
const instanceWrapper = await this.lookupComponent(
363362
providers,
@@ -428,7 +427,6 @@ export class Injector {
428427
keyOrIndex?: string | number,
429428
): Promise<InstanceWrapper<T>> {
430429
const { name } = dependencyContext;
431-
const tokenName = name.toString().includes(' ') ? name.toString().split(' ')[1] : name.toString();
432430
if (wrapper && wrapper.name === name) {
433431
throw new UnknownDependenciesException(
434432
wrapper.name,
@@ -438,7 +436,7 @@ export class Injector {
438436
}
439437
if (providers.has(name)) {
440438
const instanceWrapper = providers.get(name);
441-
this.logger.log(`Found ${tokenName} in ${moduleRef?.metatype.name ?? 'unknown'}`)
439+
this.foundInLog(name, moduleRef);
442440
this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapper);
443441
return instanceWrapper;
444442
}
@@ -490,8 +488,6 @@ export class Injector {
490488
isTraversing?: boolean,
491489
): Promise<any> {
492490
let instanceWrapperRef: InstanceWrapper = null;
493-
const tokenName = name.toString().includes(' ') ? name.toString().split(' ')[1] : name.toString();
494-
495491
const imports = moduleRef.imports || new Set<Module>();
496492
const identity = (item: any) => item;
497493

@@ -506,7 +502,7 @@ export class Injector {
506502
if (moduleRegistry.includes(relatedModule.id)) {
507503
continue;
508504
}
509-
this.logger.log(`Looking in ${relatedModule?.metatype?.name ?? 'unknown'} for ${tokenName}`)
505+
this.lookingForLog(name, relatedModule);
510506
moduleRegistry.push(relatedModule.id);
511507
const { providers, exports } = relatedModule;
512508
if (!exports.has(name) || !providers.has(name)) {
@@ -526,7 +522,7 @@ export class Injector {
526522
}
527523
continue;
528524
}
529-
this.logger.log(`Found ${tokenName} in ${relatedModule?.metatype?.name ?? 'unknown'}`);
525+
this.foundInLog(name, relatedModule);
530526
instanceWrapperRef = providers.get(name);
531527
this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapperRef);
532528

@@ -791,4 +787,43 @@ export class Injector {
791787
? hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper)
792788
: hostWrapper.addCtorMetadata(keyOrIndex, instanceWrapper);
793789
}
790+
791+
private getTokenName(token: InstanceToken): string {
792+
return token.toString().includes(' ')
793+
? token.toString().split(' ')[1]
794+
: token.toString();
795+
}
796+
797+
private resolvingDependenciesLog(
798+
token: InstanceToken,
799+
inquirer?: InstanceWrapper,
800+
): void {
801+
const tokenName = this.getTokenName(token);
802+
const dependentName = inquirer?.name ?? 'unknown';
803+
this.logger.log(
804+
`Resolving dependency ${clc.cyanBright(tokenName)}${clc.green(
805+
' in the ',
806+
)}${clc.yellow(dependentName)}${clc.green(' provider ')}`,
807+
);
808+
}
809+
810+
private lookingForLog(token: InstanceToken, moduleRef: Module): void {
811+
const tokenName = this.getTokenName(token);
812+
const moduleRefName = moduleRef?.metatype?.name ?? 'unknown';
813+
this.logger.log(
814+
`Looking for ${clc.cyanBright(tokenName)}${clc.green(' in ')}${clc.magentaBright(
815+
moduleRefName,
816+
)}`,
817+
);
818+
}
819+
820+
private foundInLog(token: InstanceToken, moduleRef: Module): void {
821+
const tokenName = this.getTokenName(token);
822+
const moduleRefName = moduleRef?.metatype?.name ?? 'unknown';
823+
this.logger.log(
824+
`Found ${clc.cyanBright(tokenName)}${clc.green(
825+
' in ',
826+
)}${clc.magentaBright(moduleRefName)}`,
827+
);
828+
}
794829
}

0 commit comments

Comments
 (0)