|
| 1 | +import { copy } from '@agile-ts/utils'; |
| 2 | + |
1 | 3 | // The Log Code Manager keeps track |
2 | 4 | // and manages all important Logs of AgileTs. |
3 | 5 | // |
|
9 | 11 | // 00 = General |
10 | 12 | // 10 = Agile |
11 | 13 | // 11 = Storage |
12 | | -// .. |
| 14 | +// ... |
13 | 15 | // |
14 | 16 | // --- |
15 | 17 | // 00:|00|:00 second digits are based on the Log Type |
@@ -251,18 +253,26 @@ function logIfTags<T extends LogCodesArrayType<typeof logCodeMessages>>( |
251 | 253 | logger.if.tag(tags)[logType](getLog(logCode, replacers), ...data); |
252 | 254 | } |
253 | 255 |
|
| 256 | +/** |
| 257 | + * Creates an extension of the specified LogCodeManager |
| 258 | + * and assigns the provided additional log messages to it. |
| 259 | + * |
| 260 | + * @param additionalLogs - Log messages to be added to the LogCodeManager. |
| 261 | + * @param logCodeManager - LogCodeManager to create an extension from. |
| 262 | + */ |
254 | 263 | export function assignAdditionalLogs< |
255 | 264 | NewLogCodeMessages, |
256 | 265 | OldLogCodeMessages = typeof logCodeMessages |
257 | 266 | >( |
258 | 267 | additionalLogs: { [key: string]: string }, |
259 | 268 | logCodeManager: LogCodeManagerInterface<OldLogCodeMessages> |
260 | 269 | ): LogCodeManagerInterface<NewLogCodeMessages> { |
261 | | - logCodeManager.logCodeMessages = { |
262 | | - ...LogCodeManager.logCodeMessages, |
| 270 | + const copiedLogCodeManager = copy(logCodeManager); |
| 271 | + copiedLogCodeManager.logCodeMessages = { |
| 272 | + ...copiedLogCodeManager.logCodeMessages, |
263 | 273 | ...additionalLogs, |
264 | 274 | } as any; |
265 | | - return logCodeManager as any; |
| 275 | + return copiedLogCodeManager as any; |
266 | 276 | } |
267 | 277 |
|
268 | 278 | let tempLogCodeManager: LogCodeManagerInterface<typeof logCodeMessages>; |
|
0 commit comments