@o3r/logger 14.0.0-next.5 → 14.0.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/o3r-logger.mjs +1 -1
- package/fesm2022/o3r-logger.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +5 -5
package/fesm2022/o3r-logger.mjs
CHANGED
|
@@ -187,7 +187,7 @@ class LoggerModule {
|
|
|
187
187
|
/**
|
|
188
188
|
* Provide logger at application level
|
|
189
189
|
* By default {@link ConsoleLogger} will be used if nothing is specified
|
|
190
|
-
* @param {...
|
|
190
|
+
* @param {...LoggerClient[]} clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}
|
|
191
191
|
* @deprecated Please use {@link provideLogger} instead, will be removed in v14.
|
|
192
192
|
*/
|
|
193
193
|
static forRoot(...clients) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-logger.mjs","sources":["../../src/services/logger/logger-console.ts","../../src/services/logger/logger-token.ts","../../src/services/logger/logger-service.ts","../../src/services/logger/logger-module.ts","../../src/services/logger/logger-noop.ts","../../src/o3r-logger.ts"],"sourcesContent":["/* eslint-disable no-console -- this is the purpose of this logger */\nimport {\n Action,\n ActionReducer,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n LoggerClient,\n} from './logger-client';\n\n/**\n * Console logger used to display the logs in the browser console\n * Should be used in development mode.\n */\nexport class ConsoleLogger implements LoggerClient {\n /** @inheritdoc */\n public error = console.error;\n\n /** @inheritdoc */\n public warn = console.warn;\n\n /** @inheritdoc */\n public debug = console.debug;\n\n /** @inheritdoc */\n public info = console.info;\n\n /** @inheritdoc */\n public log = console.log;\n\n /** @inheritdoc */\n public identify(uuid: string) {\n this.debug('logging identify function called');\n this.log(`Identify user id ${uuid}`);\n }\n\n /** @inheritdoc */\n public event(name: string, properties?: any) {\n this.debug('logging event function called');\n this.log('event:', name);\n if (properties) {\n this.log('properties:', properties);\n }\n }\n\n /** @inheritdoc */\n public getSessionURL(): undefined {\n this.debug('logging getSessionURL function called');\n return undefined;\n }\n\n /** @inheritdoc */\n public stopRecording() {\n this.debug('logging stopRecording function called');\n }\n\n /** @inheritdoc */\n public resumeRecording() {\n this.debug('logging resumeRecording function called');\n }\n\n /** @inheritdoc */\n public createMetaReducer(): MetaReducer<any, Action> {\n this.debug('logging createMetaReducer function called but a noop reducer is returned for the console logger');\n return (reducer: ActionReducer<any>): ActionReducer<any> => reducer;\n }\n}\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n LoggerClient,\n} from './logger-client';\n\nexport const LOGGER_CLIENT_TOKEN: InjectionToken<LoggerClient | LoggerClient[]> = new InjectionToken('Logger Client injection token');\n","import {\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n Action,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n Logger,\n} from '@o3r/core';\nimport {\n LoggerClient,\n} from './logger-client';\nimport {\n ConsoleLogger,\n} from './logger-console';\nimport {\n LOGGER_CLIENT_TOKEN,\n} from './logger-token';\n\n/**\n * Logger service\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggerService implements Logger {\n /** Loggers */\n private readonly clients: LoggerClient[];\n\n /**\n * Record the recording status to make sure that new clients recording status will be consistent with the service\n */\n private recordingState: 'default' | 'resumed' | 'stopped' = 'default';\n\n constructor() {\n const clients = inject<LoggerClient | LoggerClient[]>(LOGGER_CLIENT_TOKEN, { optional: true });\n\n this.clients = clients ? (Array.isArray(clients) ? clients : [clients]) : [new ConsoleLogger()];\n }\n\n /**\n * Identify a user.\n * @param uid Unique identifier for the current user\n * @param vars Addition information about the user\n */\n public identify(uid: string, vars?: { [key: string]: string }) {\n this.clients.forEach((client) => client.identify(uid, vars));\n }\n\n /**\n * Log custom event.\n * @param name Name of the event to log\n * @param properties Additional properties\n */\n public event(name: string, properties?: any): void {\n this.clients.forEach((client) => client.event(name, properties));\n }\n\n /**\n * Generate a link to the replay of the current session.\n */\n public getClientSessionURL(): string | string[] | undefined {\n const sessionUrls = this.clients\n .map((client) => client.getSessionURL())\n .filter((sessionUrl): sessionUrl is string => !!sessionUrl);\n return sessionUrls.length <= 1 ? sessionUrls[0] : sessionUrls;\n }\n\n /**\n * Register a new client to the logger service\n * @param client\n */\n public registerClient(client: LoggerClient) {\n if (this.clients.includes(client)) {\n this.warn(`Client ${client.constructor.name} already registered`);\n return;\n }\n if (this.recordingState === 'resumed') {\n client.resumeRecording();\n } else if (this.recordingState === 'stopped') {\n client.stopRecording();\n }\n this.clients.push(client);\n }\n\n /**\n * Stop recording.\n */\n public stopClientRecording(): void {\n this.recordingState = 'stopped';\n this.clients.forEach((client) => client.stopRecording());\n }\n\n /**\n * Resume recording.\n */\n public resumeClientRecording(): void {\n this.recordingState = 'resumed';\n this.clients.forEach((client) => client.resumeRecording());\n }\n\n /**\n * Report an error\n * @param message\n * @param optionalParams\n */\n public error(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.error(message, ...optionalParams));\n }\n\n /**\n * Report a warning\n * @param message\n * @param optionalParams\n */\n public warn(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.warn(message, ...optionalParams));\n }\n\n /**\n * Log a message\n * @param message\n * @param optionalParams\n */\n public log(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.log(message, ...optionalParams));\n }\n\n /**\n * Log a message\n * @param message\n * @param optionalParams\n */\n public info(message?: any, ...optionalParams: any[]): void {\n this.clients.forEach((client) => (client.info ? client.info(message, ...optionalParams) : client.log(message, ...optionalParams)));\n }\n\n /**\n * Log a debug message\n * @param message\n * @param optionalParams\n */\n public debug(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.debug?.(message, ...optionalParams));\n }\n\n /**\n * Create a meta reducer to log ngrx store.\n */\n public createMetaReducer(): MetaReducer<any, Action> | MetaReducer<any, Action>[] | undefined {\n const metaReducers = this.clients\n .map((client) => client.createMetaReducer())\n .filter((metaReducer): metaReducer is MetaReducer<any, Action> => !!metaReducer);\n return metaReducers.length <= 1 ? metaReducers[0] : metaReducers;\n }\n}\n","import {\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n LoggerClient,\n} from './logger-client';\nimport {\n ConsoleLogger,\n} from './logger-console';\nimport {\n LoggerService,\n} from './logger-service';\nimport {\n LOGGER_CLIENT_TOKEN,\n} from './logger-token';\n\n/**\n * @deprecated will be removed in v14.\n */\n@NgModule({\n providers: [\n LoggerService\n ]\n})\nexport class LoggerModule {\n /**\n * Provide logger at application level\n * By default {@link ConsoleLogger} will be used if nothing is specified\n * @param {...any} clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}\n * @deprecated Please use {@link provideLogger} instead, will be removed in v14.\n */\n public static forRoot(...clients: LoggerClient[]): ModuleWithProviders<LoggerModule> {\n if (clients.length === 0) {\n clients = [new ConsoleLogger()];\n }\n return {\n ngModule: LoggerModule,\n providers: [\n {\n provide: LOGGER_CLIENT_TOKEN,\n useValue: clients,\n multi: false\n }\n ]\n };\n }\n}\n\n/**\n * Provide logger for the application\n * By default {@link ConsoleLogger} will be used if nothing is specified\n * @param clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}\n */\nexport function provideLogger(...clients: LoggerClient[]) {\n if (clients.length === 0) {\n clients = [new ConsoleLogger()];\n }\n return makeEnvironmentProviders([\n LoggerService,\n {\n provide: LOGGER_CLIENT_TOKEN,\n useValue: clients,\n multi: false\n }\n ]);\n}\n","/* eslint-disable no-console -- this is the purpose of this logger */\nimport type {\n Action,\n ActionReducer,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n LoggerClient,\n} from './logger-client';\n\n/**\n * Console logger used to display the logs in the browser console\n * Should be used in development mode.\n */\nexport const noopLogger: Readonly<LoggerClient> = {\n identify: () => {},\n event: () => {},\n getSessionURL: () => undefined,\n stopRecording: () => {},\n resumeRecording: () => {},\n error: console.error,\n warn: console.warn,\n debug: console.debug,\n info: console.info,\n log: console.log,\n createMetaReducer: (): MetaReducer<any, Action> => (reducer: ActionReducer<any>): ActionReducer<any> => reducer\n} as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"o3r-logger.mjs","sources":["../../src/services/logger/logger-console.ts","../../src/services/logger/logger-token.ts","../../src/services/logger/logger-service.ts","../../src/services/logger/logger-module.ts","../../src/services/logger/logger-noop.ts","../../src/o3r-logger.ts"],"sourcesContent":["/* eslint-disable no-console -- this is the purpose of this logger */\nimport {\n Action,\n ActionReducer,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n LoggerClient,\n} from './logger-client';\n\n/**\n * Console logger used to display the logs in the browser console\n * Should be used in development mode.\n */\nexport class ConsoleLogger implements LoggerClient {\n /** @inheritdoc */\n public error = console.error;\n\n /** @inheritdoc */\n public warn = console.warn;\n\n /** @inheritdoc */\n public debug = console.debug;\n\n /** @inheritdoc */\n public info = console.info;\n\n /** @inheritdoc */\n public log = console.log;\n\n /** @inheritdoc */\n public identify(uuid: string) {\n this.debug('logging identify function called');\n this.log(`Identify user id ${uuid}`);\n }\n\n /** @inheritdoc */\n public event(name: string, properties?: any) {\n this.debug('logging event function called');\n this.log('event:', name);\n if (properties) {\n this.log('properties:', properties);\n }\n }\n\n /** @inheritdoc */\n public getSessionURL(): undefined {\n this.debug('logging getSessionURL function called');\n return undefined;\n }\n\n /** @inheritdoc */\n public stopRecording() {\n this.debug('logging stopRecording function called');\n }\n\n /** @inheritdoc */\n public resumeRecording() {\n this.debug('logging resumeRecording function called');\n }\n\n /** @inheritdoc */\n public createMetaReducer(): MetaReducer<any, Action> {\n this.debug('logging createMetaReducer function called but a noop reducer is returned for the console logger');\n return (reducer: ActionReducer<any>): ActionReducer<any> => reducer;\n }\n}\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n LoggerClient,\n} from './logger-client';\n\nexport const LOGGER_CLIENT_TOKEN: InjectionToken<LoggerClient | LoggerClient[]> = new InjectionToken('Logger Client injection token');\n","import {\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n Action,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n Logger,\n} from '@o3r/core';\nimport {\n LoggerClient,\n} from './logger-client';\nimport {\n ConsoleLogger,\n} from './logger-console';\nimport {\n LOGGER_CLIENT_TOKEN,\n} from './logger-token';\n\n/**\n * Logger service\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LoggerService implements Logger {\n /** Loggers */\n private readonly clients: LoggerClient[];\n\n /**\n * Record the recording status to make sure that new clients recording status will be consistent with the service\n */\n private recordingState: 'default' | 'resumed' | 'stopped' = 'default';\n\n constructor() {\n const clients = inject<LoggerClient | LoggerClient[]>(LOGGER_CLIENT_TOKEN, { optional: true });\n\n this.clients = clients ? (Array.isArray(clients) ? clients : [clients]) : [new ConsoleLogger()];\n }\n\n /**\n * Identify a user.\n * @param uid Unique identifier for the current user\n * @param vars Addition information about the user\n */\n public identify(uid: string, vars?: { [key: string]: string }) {\n this.clients.forEach((client) => client.identify(uid, vars));\n }\n\n /**\n * Log custom event.\n * @param name Name of the event to log\n * @param properties Additional properties\n */\n public event(name: string, properties?: any): void {\n this.clients.forEach((client) => client.event(name, properties));\n }\n\n /**\n * Generate a link to the replay of the current session.\n */\n public getClientSessionURL(): string | string[] | undefined {\n const sessionUrls = this.clients\n .map((client) => client.getSessionURL())\n .filter((sessionUrl): sessionUrl is string => !!sessionUrl);\n return sessionUrls.length <= 1 ? sessionUrls[0] : sessionUrls;\n }\n\n /**\n * Register a new client to the logger service\n * @param client\n */\n public registerClient(client: LoggerClient) {\n if (this.clients.includes(client)) {\n this.warn(`Client ${client.constructor.name} already registered`);\n return;\n }\n if (this.recordingState === 'resumed') {\n client.resumeRecording();\n } else if (this.recordingState === 'stopped') {\n client.stopRecording();\n }\n this.clients.push(client);\n }\n\n /**\n * Stop recording.\n */\n public stopClientRecording(): void {\n this.recordingState = 'stopped';\n this.clients.forEach((client) => client.stopRecording());\n }\n\n /**\n * Resume recording.\n */\n public resumeClientRecording(): void {\n this.recordingState = 'resumed';\n this.clients.forEach((client) => client.resumeRecording());\n }\n\n /**\n * Report an error\n * @param message\n * @param optionalParams\n */\n public error(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.error(message, ...optionalParams));\n }\n\n /**\n * Report a warning\n * @param message\n * @param optionalParams\n */\n public warn(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.warn(message, ...optionalParams));\n }\n\n /**\n * Log a message\n * @param message\n * @param optionalParams\n */\n public log(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.log(message, ...optionalParams));\n }\n\n /**\n * Log a message\n * @param message\n * @param optionalParams\n */\n public info(message?: any, ...optionalParams: any[]): void {\n this.clients.forEach((client) => (client.info ? client.info(message, ...optionalParams) : client.log(message, ...optionalParams)));\n }\n\n /**\n * Log a debug message\n * @param message\n * @param optionalParams\n */\n public debug(message?: any, ...optionalParams: any[]) {\n this.clients.forEach((client) => client.debug?.(message, ...optionalParams));\n }\n\n /**\n * Create a meta reducer to log ngrx store.\n */\n public createMetaReducer(): MetaReducer<any, Action> | MetaReducer<any, Action>[] | undefined {\n const metaReducers = this.clients\n .map((client) => client.createMetaReducer())\n .filter((metaReducer): metaReducer is MetaReducer<any, Action> => !!metaReducer);\n return metaReducers.length <= 1 ? metaReducers[0] : metaReducers;\n }\n}\n","import {\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n LoggerClient,\n} from './logger-client';\nimport {\n ConsoleLogger,\n} from './logger-console';\nimport {\n LoggerService,\n} from './logger-service';\nimport {\n LOGGER_CLIENT_TOKEN,\n} from './logger-token';\n\n/**\n * @deprecated will be removed in v14.\n */\n@NgModule({\n providers: [\n LoggerService\n ]\n})\nexport class LoggerModule {\n /**\n * Provide logger at application level\n * By default {@link ConsoleLogger} will be used if nothing is specified\n * @param {...LoggerClient[]} clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}\n * @deprecated Please use {@link provideLogger} instead, will be removed in v14.\n */\n public static forRoot(...clients: LoggerClient[]): ModuleWithProviders<LoggerModule> {\n if (clients.length === 0) {\n clients = [new ConsoleLogger()];\n }\n return {\n ngModule: LoggerModule,\n providers: [\n {\n provide: LOGGER_CLIENT_TOKEN,\n useValue: clients,\n multi: false\n }\n ]\n };\n }\n}\n\n/**\n * Provide logger for the application\n * By default {@link ConsoleLogger} will be used if nothing is specified\n * @param clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}\n */\nexport function provideLogger(...clients: LoggerClient[]) {\n if (clients.length === 0) {\n clients = [new ConsoleLogger()];\n }\n return makeEnvironmentProviders([\n LoggerService,\n {\n provide: LOGGER_CLIENT_TOKEN,\n useValue: clients,\n multi: false\n }\n ]);\n}\n","/* eslint-disable no-console -- this is the purpose of this logger */\nimport type {\n Action,\n ActionReducer,\n MetaReducer,\n} from '@ngrx/store';\nimport type {\n LoggerClient,\n} from './logger-client';\n\n/**\n * Console logger used to display the logs in the browser console\n * Should be used in development mode.\n */\nexport const noopLogger: Readonly<LoggerClient> = {\n identify: () => {},\n event: () => {},\n getSessionURL: () => undefined,\n stopRecording: () => {},\n resumeRecording: () => {},\n error: console.error,\n warn: console.warn,\n debug: console.debug,\n info: console.info,\n log: console.log,\n createMetaReducer: (): MetaReducer<any, Action> => (reducer: ActionReducer<any>): ActionReducer<any> => reducer\n} as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -106,7 +106,7 @@ declare class LoggerModule {
|
|
|
106
106
|
/**
|
|
107
107
|
* Provide logger at application level
|
|
108
108
|
* By default {@link ConsoleLogger} will be used if nothing is specified
|
|
109
|
-
* @param {...
|
|
109
|
+
* @param {...LoggerClient[]} clients Registered {@link https://github.com/AmadeusITGroup/otter/blob/main/docs/logger/LOGS.md | Logger Client}
|
|
110
110
|
* @deprecated Please use {@link provideLogger} instead, will be removed in v14.
|
|
111
111
|
*/
|
|
112
112
|
static forRoot(...clients: LoggerClient[]): ModuleWithProviders<LoggerModule>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/logger",
|
|
3
|
-
"version": "14.0.0-next.
|
|
3
|
+
"version": "14.0.0-next.8",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"@angular/platform-browser-dynamic": "^20.0.0",
|
|
17
17
|
"@fullstory/browser": "^2.0.0",
|
|
18
18
|
"@ngrx/store": "^20.0.0",
|
|
19
|
-
"@o3r/core": "~14.0.0-next.
|
|
20
|
-
"@o3r/schematics": "~14.0.0-next.
|
|
19
|
+
"@o3r/core": "~14.0.0-next.8",
|
|
20
|
+
"@o3r/schematics": "~14.0.0-next.8",
|
|
21
21
|
"@schematics/angular": "^20.0.0",
|
|
22
22
|
"logrocket": "^10.0.0",
|
|
23
23
|
"logrocket-ngrx": "^0.2.1",
|
|
24
24
|
"rxjs": "^7.8.1",
|
|
25
25
|
"smartlook-client": "^10.0.0",
|
|
26
|
-
"type-fest": "^
|
|
26
|
+
"type-fest": "^5.3.1"
|
|
27
27
|
},
|
|
28
28
|
"peerDependenciesMeta": {
|
|
29
29
|
"@angular-devkit/schematics": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@o3r/schematics": "~14.0.0-next.
|
|
58
|
+
"@o3r/schematics": "~14.0.0-next.8",
|
|
59
59
|
"tslib": "^2.6.2"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|