Skip to content

Commit 94c53ed

Browse files
committed
fixes functions error when building with newer versions of Angular and AOT
1 parent 73b0e11 commit 94c53ed

File tree

1 file changed

+43
-25
lines changed

1 file changed

+43
-25
lines changed

library/logger/src/logger.module.ts

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,52 @@
1-
import {ModuleWithProviders, NgModule, Provider} from '@angular/core';
1+
import {InjectionToken, ModuleWithProviders, NgModule} from '@angular/core';
2+
import {LogConsoleService} from './log-console/log-console.service';
23
import {LogNoopService} from './log-noop/log-noop.service';
34
import {LogService} from './log/log.service';
4-
import {LOGGER_ALL, LOGGER_CONSOLE, LOGGER_LEVELS, LOGGER_TAILS, LOGGER_TAILS_DEFAULT, LoggerConfig} from './logger-types';
5-
import {LogConsoleService} from './log-console/log-console.service';
5+
import {
6+
ConsoleMethods,
7+
LOGGER_ALL,
8+
LOGGER_CONSOLE,
9+
LOGGER_LEVEL,
10+
LOGGER_LEVELS,
11+
LOGGER_TAILS,
12+
LOGGER_TAILS_DEFAULT,
13+
LoggerConfig
14+
} from './logger-types';
15+
import {PrefixService} from './prefix/prefix.service';
16+
17+
export const LOGGER_OPTIONS: InjectionToken<LoggerConfig> = new InjectionToken<LoggerConfig>('LOGGER_OPTIONS');
18+
19+
export function LogServiceFactory(
20+
levels: LOGGER_LEVEL,
21+
console: ConsoleMethods<void>,
22+
prefixService: PrefixService,
23+
loggerConfig: LoggerConfig
24+
) {
25+
return loggerConfig && loggerConfig.enabled
26+
? new LogConsoleService(levels, console, prefixService)
27+
: new LogNoopService();
28+
}
629

7-
@NgModule()
30+
// @dynamic
31+
@NgModule({})
832
export class LoggerModule {
933
/**
1034
* Call this method to import the logger module into the app module.
1135
*/
12-
public static forRoot(options?: LoggerConfig): ModuleWithProviders {
13-
options = Object.assign({
14-
enabled: true,
15-
levels: LOGGER_ALL,
16-
tails: LOGGER_TAILS_DEFAULT,
17-
console: console
18-
} as LoggerConfig, options || {});
19-
20-
const providers: Provider[] = [
21-
{provide: LOGGER_LEVELS, useValue: options.levels},
22-
{provide: LOGGER_TAILS, useValue: options.tails},
23-
{provide: LOGGER_CONSOLE, useValue: options.console}
24-
];
25-
26-
if (options && options.enabled) {
27-
providers.push({provide: LogService, useClass: LogConsoleService});
28-
} else {
29-
providers.push({provide: LogService, useClass: LogNoopService});
30-
}
31-
32-
return {ngModule: LoggerModule, providers};
36+
public static forRoot(loggerConfig?: LoggerConfig): ModuleWithProviders<LoggerModule> {
37+
return {
38+
ngModule: LoggerModule,
39+
providers: [
40+
{provide: LOGGER_LEVELS, useValue: loggerConfig.levels || LOGGER_ALL},
41+
{provide: LOGGER_TAILS, useValue: loggerConfig.tails || LOGGER_TAILS_DEFAULT},
42+
{provide: LOGGER_CONSOLE, useValue: loggerConfig.console || console},
43+
{provide: LOGGER_OPTIONS, useValue: loggerConfig || {}},
44+
{
45+
provide: LogService,
46+
useFactory: LogServiceFactory,
47+
deps: [LOGGER_LEVELS, LOGGER_CONSOLE, PrefixService, LOGGER_OPTIONS]
48+
}
49+
]
50+
};
3351
}
3452
}

0 commit comments

Comments
 (0)