UNPKG

@stryker-mutator/core

Version:

The extendable JavaScript mutation testing framework

16 lines (13 loc) 853 B
import { Injector, Scope } from 'typed-inject'; import { commonTokens } from '@stryker-mutator/api/plugin'; import { LoggerFactoryMethod, Logger } from '@stryker-mutator/api/logging'; import log4js from 'log4js'; export function provideLogger(injector: Injector): LoggerProvider { return injector.provideValue(commonTokens.getLogger, log4js.getLogger).provideFactory(commonTokens.logger, loggerFactory, Scope.Transient); } export type LoggerProvider = Injector<{ [commonTokens.getLogger]: LoggerFactoryMethod; [commonTokens.logger]: Logger }>; // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type function loggerFactory(getLoggerMethod: LoggerFactoryMethod, target: Function | undefined) { return getLoggerMethod(target ? target.name : 'UNKNOWN'); } loggerFactory.inject = [commonTokens.getLogger, commonTokens.target] as const;