@decaf-ts/logging 0.10.0 → 0.10.2
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/README.md +298 -171
- package/dist/logging.cjs +1 -1
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.js +1 -1
- package/dist/logging.js.map +1 -1
- package/lib/LoggedClass.cjs +4 -4
- package/lib/LoggedClass.d.ts +4 -4
- package/lib/constants.cjs +32 -63
- package/lib/constants.d.ts +32 -63
- package/lib/constants.js.map +1 -1
- package/lib/decorators.cjs +28 -28
- package/lib/decorators.d.ts +29 -36
- package/lib/decorators.js.map +1 -1
- package/lib/environment.cjs +34 -41
- package/lib/environment.d.ts +31 -32
- package/lib/environment.js.map +1 -1
- package/lib/esm/LoggedClass.d.ts +4 -4
- package/lib/esm/LoggedClass.js +4 -4
- package/lib/esm/constants.d.ts +32 -63
- package/lib/esm/constants.js +32 -63
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/decorators.d.ts +29 -36
- package/lib/esm/decorators.js +28 -28
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/environment.d.ts +31 -32
- package/lib/esm/environment.js +34 -41
- package/lib/esm/environment.js.map +1 -1
- package/lib/esm/filters/LogFilter.d.ts +11 -11
- package/lib/esm/filters/LogFilter.js +5 -5
- package/lib/esm/filters/PatternFilter.d.ts +15 -15
- package/lib/esm/filters/PatternFilter.js +12 -12
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +3 -3
- package/lib/esm/logging.d.ts +119 -113
- package/lib/esm/logging.js +223 -138
- package/lib/esm/logging.js.map +1 -1
- package/lib/esm/pino/index.d.ts +6 -0
- package/lib/esm/pino/index.js +6 -0
- package/lib/esm/pino/index.js.map +1 -1
- package/lib/esm/pino/pino.d.ts +13 -5
- package/lib/esm/pino/pino.js +70 -124
- package/lib/esm/pino/pino.js.map +1 -1
- package/lib/esm/text.d.ts +29 -67
- package/lib/esm/text.js +29 -67
- package/lib/esm/text.js.map +1 -1
- package/lib/esm/time.d.ts +45 -43
- package/lib/esm/time.js +38 -36
- package/lib/esm/time.js.map +1 -1
- package/lib/esm/types.d.ts +59 -50
- package/lib/esm/utils.d.ts +43 -0
- package/lib/esm/utils.js +55 -3
- package/lib/esm/utils.js.map +1 -1
- package/lib/esm/web.d.ts +2 -2
- package/lib/esm/web.js +2 -2
- package/lib/esm/winston/index.d.ts +7 -0
- package/lib/esm/winston/index.js +7 -1
- package/lib/esm/winston/index.js.map +1 -1
- package/lib/esm/winston/winston.d.ts +17 -21
- package/lib/esm/winston/winston.js +29 -36
- package/lib/esm/winston/winston.js.map +1 -1
- package/lib/filters/LogFilter.cjs +5 -5
- package/lib/filters/LogFilter.d.ts +11 -11
- package/lib/filters/PatternFilter.cjs +12 -12
- package/lib/filters/PatternFilter.d.ts +15 -15
- package/lib/index.cjs +3 -3
- package/lib/index.d.ts +2 -2
- package/lib/logging.cjs +224 -139
- package/lib/logging.d.ts +119 -113
- package/lib/logging.js.map +1 -1
- package/lib/pino/index.cjs +6 -0
- package/lib/pino/index.d.ts +6 -0
- package/lib/pino/index.js.map +1 -1
- package/lib/pino/pino.cjs +102 -126
- package/lib/pino/pino.d.ts +13 -5
- package/lib/pino/pino.js.map +1 -1
- package/lib/text.cjs +29 -67
- package/lib/text.d.ts +29 -67
- package/lib/text.js.map +1 -1
- package/lib/time.cjs +38 -36
- package/lib/time.d.ts +45 -43
- package/lib/time.js.map +1 -1
- package/lib/types.d.ts +59 -50
- package/lib/utils.cjs +55 -3
- package/lib/utils.d.ts +43 -0
- package/lib/utils.js.map +1 -1
- package/lib/web.cjs +2 -2
- package/lib/web.d.ts +2 -2
- package/lib/winston/index.cjs +22 -0
- package/lib/winston/index.d.ts +7 -0
- package/lib/winston/index.js.map +1 -1
- package/lib/winston/winston.cjs +29 -36
- package/lib/winston/winston.d.ts +17 -21
- package/lib/winston/winston.js.map +1 -1
- package/package.json +9 -10
- package/lib/accumulate.types.cjs +0 -27
- package/lib/accumulate.types.d.ts +0 -1
- package/lib/accumulate.types.js.map +0 -1
- package/lib/esm/accumulate.types.d.ts +0 -1
- package/lib/esm/accumulate.types.js +0 -25
- package/lib/esm/accumulate.types.js.map +0 -1
package/lib/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { styles } from "styled-string-builder";
|
|
2
2
|
import { LoggingMode, LogLevel } from "./constants";
|
|
3
3
|
/**
|
|
4
|
-
* @description
|
|
5
|
-
* @summary Represents either a literal string or an object
|
|
4
|
+
* @description A string-compatible value that can be accepted by the logging APIs.
|
|
5
|
+
* @summary Represents either a literal string or an object that has a `toString()` method. This allows for the lazy stringification of complex payloads.
|
|
6
6
|
* @typedef {(string|Object)} StringLike
|
|
7
7
|
* @memberOf module:Logging
|
|
8
8
|
*/
|
|
@@ -10,32 +10,32 @@ export type StringLike = string | {
|
|
|
10
10
|
toString: () => string;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
|
-
* @description
|
|
14
|
-
* @summary
|
|
15
|
-
* @typedef {function(any[]): any} AnyFunction
|
|
13
|
+
* @description A generic function signature for loosely typed callbacks.
|
|
14
|
+
* @summary This type covers variadic functions where the arguments and return types are not constrained, which enables the logging layer to accept any callable.
|
|
15
|
+
* @typedef {function(...any[]): any} AnyFunction
|
|
16
16
|
* @memberOf module:Logging
|
|
17
17
|
*/
|
|
18
18
|
export type AnyFunction = (...args: any[]) => any;
|
|
19
19
|
/**
|
|
20
|
-
* @description
|
|
21
|
-
* @summary Describes a constructor that produces instances of type `T
|
|
20
|
+
* @description A constructable class type.
|
|
21
|
+
* @summary Describes a constructor that produces instances of type `T`. This allows APIs to accept class references for context-aware logging.
|
|
22
22
|
* @template T
|
|
23
|
-
* @typedef
|
|
23
|
+
* @typedef Class
|
|
24
24
|
* @memberOf module:Logging
|
|
25
25
|
*/
|
|
26
26
|
export type Class<T> = {
|
|
27
27
|
new (...args: any[]): T;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
|
-
* @description
|
|
30
|
+
* @description A context descriptor that is accepted when requesting a logger instance.
|
|
31
31
|
* @summary Allows the logging system to resolve context names from strings, constructors, or functions.
|
|
32
|
-
* @typedef {(string|
|
|
32
|
+
* @typedef {(string|Class<any>|AnyFunction)} LoggingContext
|
|
33
33
|
* @memberOf module:Logging
|
|
34
34
|
*/
|
|
35
35
|
export type LoggingContext = string | Class<any> | AnyFunction;
|
|
36
36
|
/**
|
|
37
|
-
* @description
|
|
38
|
-
* @summary Declares a `for` method that returns another instance of `THIS` using the provided arguments
|
|
37
|
+
* @description An interface for factories that create contextual clones of the receiver.
|
|
38
|
+
* @summary Declares a `for` method that returns another instance of `THIS` using the provided arguments. This enables chained logger customization.
|
|
39
39
|
* @template THIS
|
|
40
40
|
* @template ARGS
|
|
41
41
|
* @interface Impersonatable
|
|
@@ -45,16 +45,14 @@ export interface Impersonatable<THIS, ARGS extends any[] = any[]> {
|
|
|
45
45
|
/**
|
|
46
46
|
* @description Produce a copy of the current instance with altered context.
|
|
47
47
|
* @summary Called by logging utilities to derive child objects with supplemental configuration and context metadata.
|
|
48
|
-
* @template THIS
|
|
49
|
-
* @template ARGS
|
|
50
48
|
* @param {ARGS} args - Arguments forwarded to the impersonation strategy.
|
|
51
49
|
* @return {THIS} Derived instance using the provided arguments.
|
|
52
50
|
*/
|
|
53
51
|
for(...args: ARGS): THIS;
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
56
|
-
* @description
|
|
57
|
-
* @summary
|
|
54
|
+
* @description An interface for loggers that support multiple verbosity levels.
|
|
55
|
+
* @summary This interface declares severity-specific log methods, configuration overrides, and factory helpers that are used throughout the logging toolkit.
|
|
58
56
|
* @interface Logger
|
|
59
57
|
* @memberOf module:Logging
|
|
60
58
|
*/
|
|
@@ -131,13 +129,19 @@ export interface Logger extends Impersonatable<Logger, [
|
|
|
131
129
|
* @param {...any[]} args - Extra arguments forwarded to factory implementations.
|
|
132
130
|
* @return {Logger} Logger instance tailored to the supplied context.
|
|
133
131
|
*/
|
|
134
|
-
for(config: Partial<LoggingConfig>):
|
|
132
|
+
for(config: Partial<LoggingConfig>): this;
|
|
135
133
|
for(context: string | {
|
|
136
134
|
new (...args: any[]): any;
|
|
137
|
-
} | AnyFunction | object):
|
|
135
|
+
} | AnyFunction | object): this;
|
|
138
136
|
for(method: string | {
|
|
139
137
|
new (...args: any[]): any;
|
|
140
|
-
} | AnyFunction | object | Partial<LoggingConfig>, config?: Partial<LoggingConfig>, ...args: any[]):
|
|
138
|
+
} | AnyFunction | object | Partial<LoggingConfig>, config?: Partial<LoggingConfig>, ...args: any[]): this;
|
|
139
|
+
/**
|
|
140
|
+
* @description Clears any contextual overrides applied via {@link Logger.for}.
|
|
141
|
+
* @summary Resets temporary context/configuration so ensuing chains start from the base logger while preserving the concrete instance type.
|
|
142
|
+
* @return {this} The same logger instance to continue chaining.
|
|
143
|
+
*/
|
|
144
|
+
clear(): this;
|
|
141
145
|
/**
|
|
142
146
|
* @description Updates the logger configuration.
|
|
143
147
|
* @summary Merges the given options into the logger's existing configuration.
|
|
@@ -145,10 +149,15 @@ export interface Logger extends Impersonatable<Logger, [
|
|
|
145
149
|
* @return {void}
|
|
146
150
|
*/
|
|
147
151
|
setConfig(config: Partial<LoggingConfig>): void;
|
|
152
|
+
/**
|
|
153
|
+
* @description Immutable base context for the logger instance.
|
|
154
|
+
* @summary Returned as a copy so callers cannot mutate the internal base context while still allowing inspection.
|
|
155
|
+
*/
|
|
156
|
+
readonly root: string[];
|
|
148
157
|
}
|
|
149
158
|
/**
|
|
150
|
-
* @description
|
|
151
|
-
* @summary
|
|
159
|
+
* @description An interface for filters that can mutate or reject log messages.
|
|
160
|
+
* @summary This allows for custom pre-processing of log entries before they are formatted or emitted.
|
|
152
161
|
* @interface LoggingFilter
|
|
153
162
|
* @memberOf module:Logging
|
|
154
163
|
*/
|
|
@@ -164,25 +173,29 @@ export interface LoggingFilter {
|
|
|
164
173
|
filter(config: LoggingConfig, message: string, context: string[]): string;
|
|
165
174
|
}
|
|
166
175
|
/**
|
|
167
|
-
* @description Configuration for logging.
|
|
168
|
-
* @summary Defines the log level and
|
|
169
|
-
* @
|
|
176
|
+
* @description Configuration for the logging system.
|
|
177
|
+
* @summary Defines the log level, verbosity, and other settings for logging.
|
|
178
|
+
* @template TRANSPORT
|
|
179
|
+
* @typedef {object} LoggingConfig
|
|
180
|
+
* @property {string} env - The environment, e.g., "development", "production".
|
|
170
181
|
* @property {LogLevel} level - The logging level.
|
|
171
|
-
* @property {boolean} [logLevel] - Whether to display log level in output.
|
|
182
|
+
* @property {boolean} [logLevel] - Whether to display the log level in the output.
|
|
172
183
|
* @property {number} verbose - The verbosity level.
|
|
173
|
-
* @property {
|
|
174
|
-
* @property {string}
|
|
175
|
-
* @property {
|
|
176
|
-
* @property {boolean} [style] - Whether to apply styling to log output.
|
|
184
|
+
* @property {string} contextSeparator - The separator to use between context entries.
|
|
185
|
+
* @property {string} separator - The separator to use between log components.
|
|
186
|
+
* @property {boolean} [style] - Whether to apply styling to the log output.
|
|
177
187
|
* @property {boolean} [timestamp] - Whether to include timestamps in log messages.
|
|
178
|
-
* @property {string} [timestampFormat] -
|
|
188
|
+
* @property {string} [timestampFormat] - The format for timestamps.
|
|
179
189
|
* @property {boolean} [context] - Whether to include context information in log messages.
|
|
180
190
|
* @property {Theme} [theme] - The theme to use for styling log messages.
|
|
181
|
-
* @property {
|
|
191
|
+
* @property {LoggingMode} format - The output format for log messages.
|
|
192
|
+
* @property {string} pattern - The pattern to use for formatting log messages.
|
|
193
|
+
* @property {(string|number)} [correlationId] - A correlation ID for tracking related log messages.
|
|
194
|
+
* @property {(string[]|LoggingFilter[])} [filters] - An array of filters to apply to log messages.
|
|
195
|
+
* @property {TRANSPORT[]} [transports] - An array of transports to use for logging.
|
|
182
196
|
* @memberOf module:Logging
|
|
183
197
|
*/
|
|
184
|
-
export type LoggingConfig = {
|
|
185
|
-
app?: string;
|
|
198
|
+
export type LoggingConfig<TRANSPORT = object> = {
|
|
186
199
|
env: "development" | "production" | "test" | "staging" | string;
|
|
187
200
|
level: LogLevel;
|
|
188
201
|
logLevel?: boolean;
|
|
@@ -198,23 +211,19 @@ export type LoggingConfig = {
|
|
|
198
211
|
pattern: string;
|
|
199
212
|
correlationId?: string | number;
|
|
200
213
|
filters?: string[] | LoggingFilter[];
|
|
201
|
-
|
|
202
|
-
instance?: unknown;
|
|
203
|
-
options?: unknown;
|
|
204
|
-
destination?: unknown;
|
|
205
|
-
};
|
|
214
|
+
transports?: TRANSPORT[];
|
|
206
215
|
};
|
|
207
216
|
/**
|
|
208
|
-
* @description
|
|
209
|
-
* @summary
|
|
210
|
-
* @template L
|
|
211
|
-
* @typedef {function(string, Partial<LoggingConfig>, any[]): L} LoggerFactory
|
|
217
|
+
* @description A factory signature for creating logger instances.
|
|
218
|
+
* @summary This allows consumers to override the logger construction with custom implementations.
|
|
219
|
+
* @template L
|
|
220
|
+
* @typedef {function(string, Partial<LoggingConfig>, ...any[]): L} LoggerFactory
|
|
212
221
|
* @memberOf module:Logging
|
|
213
222
|
*/
|
|
214
|
-
export type LoggerFactory<L extends Logger = Logger> = (object
|
|
223
|
+
export type LoggerFactory<L extends Logger = Logger> = (object?: string, config?: Partial<LoggingConfig>, ...args: any[]) => L;
|
|
215
224
|
/**
|
|
216
|
-
* @description
|
|
217
|
-
* @summary
|
|
225
|
+
* @description A theme option that is applied to a specific log element.
|
|
226
|
+
* @summary This interface configures the foreground and background colors, as well as additional style directives for styled console output.
|
|
218
227
|
* @interface ThemeOption
|
|
219
228
|
* @memberOf module:Logging
|
|
220
229
|
*/
|
|
@@ -224,15 +233,15 @@ export interface ThemeOption {
|
|
|
224
233
|
style?: number[] | [keyof typeof styles];
|
|
225
234
|
}
|
|
226
235
|
/**
|
|
227
|
-
* @description
|
|
228
|
-
* @summary
|
|
229
|
-
* @typedef {
|
|
236
|
+
* @description A mapping between log levels and theme overrides.
|
|
237
|
+
* @summary This enables level-specific styling by associating each {@link LogLevel} with a {@link ThemeOption} configuration.
|
|
238
|
+
* @typedef {Partial<Record<LogLevel, ThemeOption>>} ThemeOptionByLogLevel
|
|
230
239
|
* @memberOf module:Logging
|
|
231
240
|
*/
|
|
232
241
|
export type ThemeOptionByLogLevel = Partial<Record<LogLevel, ThemeOption>>;
|
|
233
242
|
/**
|
|
234
|
-
* @description
|
|
235
|
-
* @summary
|
|
243
|
+
* @description A theme definition that is applied to the console output.
|
|
244
|
+
* @summary This interface specifies the styling for each console log element and supports overrides based on {@link LogLevel} values.
|
|
236
245
|
* @interface Theme
|
|
237
246
|
* @memberOf module:Logging
|
|
238
247
|
*/
|
package/lib/utils.cjs
CHANGED
|
@@ -5,6 +5,14 @@ exports.isFunction = isFunction;
|
|
|
5
5
|
exports.isMethod = isMethod;
|
|
6
6
|
exports.isInstance = isInstance;
|
|
7
7
|
exports.getObjectName = getObjectName;
|
|
8
|
+
/**
|
|
9
|
+
* @description Checks if a value is a class.
|
|
10
|
+
* @summary This function determines if the given value is a class constructor.
|
|
11
|
+
* @param {unknown} value - The value to check.
|
|
12
|
+
* @return {boolean} `true` if the value is a class, `false` otherwise.
|
|
13
|
+
* @function isClass
|
|
14
|
+
* @memberOf module:Logging
|
|
15
|
+
*/
|
|
8
16
|
function isClass(value) {
|
|
9
17
|
if (typeof value !== "function")
|
|
10
18
|
return false;
|
|
@@ -34,15 +42,42 @@ function isClass(value) {
|
|
|
34
42
|
const names = Object.getOwnPropertyNames(proto).filter((n) => n !== "constructor");
|
|
35
43
|
return names.length > 0;
|
|
36
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @description Checks if a value is a function.
|
|
47
|
+
* @summary This function determines if the given value is a function, but not a class.
|
|
48
|
+
* @template T
|
|
49
|
+
* @param {unknown} value - The value to check.
|
|
50
|
+
* @return {boolean} `true` if the value is a function, `false` otherwise.
|
|
51
|
+
* @function isFunction
|
|
52
|
+
* @memberOf module:Logging
|
|
53
|
+
*/
|
|
37
54
|
function isFunction(value) {
|
|
38
55
|
return typeof value === "function" && !isClass(value);
|
|
39
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @description Checks if a value is a method.
|
|
59
|
+
* @summary This function determines if the given value is a method.
|
|
60
|
+
* @template T
|
|
61
|
+
* @param {unknown} value - The value to check.
|
|
62
|
+
* @return {boolean} `true` if the value is a method, `false` otherwise.
|
|
63
|
+
* @function isMethod
|
|
64
|
+
* @memberOf module:Logging
|
|
65
|
+
*/
|
|
40
66
|
function isMethod(value) {
|
|
41
67
|
if (!isFunction(value))
|
|
42
68
|
return false;
|
|
43
69
|
const descriptor = Object.getOwnPropertyDescriptor(value, "prototype");
|
|
44
70
|
return !descriptor || descriptor.value === undefined;
|
|
45
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* @description Checks if a value is an instance of a class.
|
|
74
|
+
* @summary This function determines if the given value is an instance of a class.
|
|
75
|
+
* @template T
|
|
76
|
+
* @param {unknown} value - The value to check.
|
|
77
|
+
* @return {boolean} `true` if the value is an instance of a class, `false` otherwise.
|
|
78
|
+
* @function isInstance
|
|
79
|
+
* @memberOf module:Logging
|
|
80
|
+
*/
|
|
46
81
|
function isInstance(value) {
|
|
47
82
|
if (value === null || typeof value !== "object")
|
|
48
83
|
return false;
|
|
@@ -52,6 +87,14 @@ function isInstance(value) {
|
|
|
52
87
|
return false;
|
|
53
88
|
return isClass(ctor);
|
|
54
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* @description Gets the name of an object.
|
|
92
|
+
* @summary This function returns the name of the given object, which can be a class, an instance of a class, a function, or a primitive value.
|
|
93
|
+
* @param {unknown} value - The value to get the name of.
|
|
94
|
+
* @return {string} The name of the object.
|
|
95
|
+
* @function getObjectName
|
|
96
|
+
* @memberOf module:Logging
|
|
97
|
+
*/
|
|
55
98
|
function getObjectName(value) {
|
|
56
99
|
if (value === null)
|
|
57
100
|
return "null";
|
|
@@ -63,6 +106,18 @@ function getObjectName(value) {
|
|
|
63
106
|
return value.name || "AnonymousClass";
|
|
64
107
|
}
|
|
65
108
|
if (isInstance(value)) {
|
|
109
|
+
const toStringFn = value.toString;
|
|
110
|
+
if (typeof toStringFn === "function" &&
|
|
111
|
+
toStringFn !== Object.prototype.toString) {
|
|
112
|
+
try {
|
|
113
|
+
const rendered = toStringFn.call(value);
|
|
114
|
+
if (typeof rendered === "string" && rendered.length)
|
|
115
|
+
return rendered;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// ignore custom toString errors and fall back to constructor name.
|
|
119
|
+
}
|
|
120
|
+
}
|
|
66
121
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
67
122
|
const ctor = value.constructor;
|
|
68
123
|
return ctor && ctor.name ? ctor.name : "AnonymousInstance";
|
|
@@ -72,9 +127,6 @@ function getObjectName(value) {
|
|
|
72
127
|
const fn = value;
|
|
73
128
|
if (fn.name)
|
|
74
129
|
return fn.name;
|
|
75
|
-
const src = Function.prototype.toString.call(fn).trim();
|
|
76
|
-
if (src)
|
|
77
|
-
return src.split("\n")[0];
|
|
78
130
|
return "anonymous";
|
|
79
131
|
}
|
|
80
132
|
if (typeof value === "object") {
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Checks if a value is a class.
|
|
3
|
+
* @summary This function determines if the given value is a class constructor.
|
|
4
|
+
* @param {unknown} value - The value to check.
|
|
5
|
+
* @return {boolean} `true` if the value is a class, `false` otherwise.
|
|
6
|
+
* @function isClass
|
|
7
|
+
* @memberOf module:Logging
|
|
8
|
+
*/
|
|
1
9
|
export declare function isClass(value: unknown): value is abstract new (...args: any[]) => any;
|
|
10
|
+
/**
|
|
11
|
+
* @description Checks if a value is a function.
|
|
12
|
+
* @summary This function determines if the given value is a function, but not a class.
|
|
13
|
+
* @template T
|
|
14
|
+
* @param {unknown} value - The value to check.
|
|
15
|
+
* @return {boolean} `true` if the value is a function, `false` otherwise.
|
|
16
|
+
* @function isFunction
|
|
17
|
+
* @memberOf module:Logging
|
|
18
|
+
*/
|
|
2
19
|
export declare function isFunction<T extends (...args: any[]) => unknown>(value: unknown): value is T;
|
|
20
|
+
/**
|
|
21
|
+
* @description Checks if a value is a method.
|
|
22
|
+
* @summary This function determines if the given value is a method.
|
|
23
|
+
* @template T
|
|
24
|
+
* @param {unknown} value - The value to check.
|
|
25
|
+
* @return {boolean} `true` if the value is a method, `false` otherwise.
|
|
26
|
+
* @function isMethod
|
|
27
|
+
* @memberOf module:Logging
|
|
28
|
+
*/
|
|
3
29
|
export declare function isMethod<T extends (...args: any[]) => unknown>(value: unknown): value is T;
|
|
30
|
+
/**
|
|
31
|
+
* @description Checks if a value is an instance of a class.
|
|
32
|
+
* @summary This function determines if the given value is an instance of a class.
|
|
33
|
+
* @template T
|
|
34
|
+
* @param {unknown} value - The value to check.
|
|
35
|
+
* @return {boolean} `true` if the value is an instance of a class, `false` otherwise.
|
|
36
|
+
* @function isInstance
|
|
37
|
+
* @memberOf module:Logging
|
|
38
|
+
*/
|
|
4
39
|
export declare function isInstance<T extends object>(value: unknown): value is T;
|
|
40
|
+
/**
|
|
41
|
+
* @description Gets the name of an object.
|
|
42
|
+
* @summary This function returns the name of the given object, which can be a class, an instance of a class, a function, or a primitive value.
|
|
43
|
+
* @param {unknown} value - The value to get the name of.
|
|
44
|
+
* @return {string} The name of the object.
|
|
45
|
+
* @function getObjectName
|
|
46
|
+
* @memberOf module:Logging
|
|
47
|
+
*/
|
|
5
48
|
export declare function getObjectName(value: unknown): string;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/web.cjs
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isBrowser = isBrowser;
|
|
4
4
|
/**
|
|
5
5
|
* @description Determines if the current environment is a browser by checking the prototype chain of the global object.
|
|
6
|
-
* @summary
|
|
7
|
-
* @return {boolean}
|
|
6
|
+
* @summary This function checks if the code is running in a browser environment.
|
|
7
|
+
* @return {boolean} `true` if the environment is a browser, `false` otherwise.
|
|
8
8
|
* @function isBrowser
|
|
9
9
|
* @memberOf module:Logging
|
|
10
10
|
*/
|
package/lib/web.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description Determines if the current environment is a browser by checking the prototype chain of the global object.
|
|
3
|
-
* @summary
|
|
4
|
-
* @return {boolean}
|
|
3
|
+
* @summary This function checks if the code is running in a browser environment.
|
|
4
|
+
* @return {boolean} `true` if the environment is a browser, `false` otherwise.
|
|
5
5
|
* @function isBrowser
|
|
6
6
|
* @memberOf module:Logging
|
|
7
7
|
*/
|
package/lib/winston/index.cjs
CHANGED
|
@@ -1,2 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @module Winston
|
|
19
|
+
* @description This module provides an adapter for the Winston logger.
|
|
20
|
+
* @summary This module exports the {@link WinstonLogger} class.
|
|
21
|
+
* @memberOf module:Logging
|
|
22
|
+
*/
|
|
23
|
+
__exportStar(require("./winston.cjs"), exports);
|
|
2
24
|
//# sourceMappingURL=index.js.map
|
package/lib/winston/index.d.ts
CHANGED
package/lib/winston/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/winston/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/winston/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,gDAA0B"}
|
package/lib/winston/winston.cjs
CHANGED
|
@@ -7,12 +7,10 @@ exports.WinstonFactory = exports.WinstonLogger = void 0;
|
|
|
7
7
|
const winston_1 = __importDefault(require("winston"));
|
|
8
8
|
const logging_1 = require("./../logging.cjs");
|
|
9
9
|
/**
|
|
10
|
-
* @description A logger implementation
|
|
11
|
-
* @summary
|
|
12
|
-
*
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings
|
|
15
|
-
* @param {Transport[]|Transport} [transports] - Winston transports to use for logging
|
|
10
|
+
* @description A logger implementation that uses Winston.
|
|
11
|
+
* @summary This class extends {@link MiniLogger} to provide logging functionality using the Winston library. It configures Winston with the appropriate transports and formats based on the logging configuration.
|
|
12
|
+
* @param {string} [cont] - The context (typically the class name) that this logger is associated with.
|
|
13
|
+
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings.
|
|
16
14
|
* @class WinstonLogger
|
|
17
15
|
* @example
|
|
18
16
|
* // Create a Winston logger for a class
|
|
@@ -27,35 +25,29 @@ const logging_1 = require("./../logging.cjs");
|
|
|
27
25
|
* methodLogger.debug('Processing data...');
|
|
28
26
|
*/
|
|
29
27
|
class WinstonLogger extends logging_1.MiniLogger {
|
|
30
|
-
constructor(cont, conf
|
|
28
|
+
constructor(cont, conf) {
|
|
31
29
|
super(cont, conf);
|
|
32
|
-
this.transports = transports;
|
|
33
30
|
const config = Object.assign({}, logging_1.Logging.getConfig(), this.conf || {});
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
if (timestamp)
|
|
37
|
-
formats.unshift(winston_1.default.format.timestamp({ format: timestampFormat }));
|
|
38
|
-
if (style)
|
|
39
|
-
formats.unshift(winston_1.default.format.colorize());
|
|
40
|
-
this.transports = this.transports || [
|
|
41
|
-
new winston_1.default.transports.Console({
|
|
42
|
-
format: winston_1.default.format.combine(...formats),
|
|
43
|
-
}),
|
|
44
|
-
];
|
|
31
|
+
const transports = this.resolveTransports(config.transports || undefined);
|
|
32
|
+
const passThrough = winston_1.default.format.printf(({ message }) => typeof message === "string" ? message : JSON.stringify(message));
|
|
45
33
|
const winstonConfig = {
|
|
46
|
-
level: level,
|
|
47
|
-
|
|
48
|
-
format:
|
|
49
|
-
transports: transports,
|
|
34
|
+
level: config.level,
|
|
35
|
+
transports,
|
|
36
|
+
format: passThrough,
|
|
50
37
|
};
|
|
51
38
|
this.winston = winston_1.default.createLogger(winstonConfig);
|
|
52
39
|
}
|
|
40
|
+
resolveTransports(transports) {
|
|
41
|
+
if (transports && transports.length)
|
|
42
|
+
return transports;
|
|
43
|
+
return [new winston_1.default.transports.Console()];
|
|
44
|
+
}
|
|
53
45
|
/**
|
|
54
|
-
* @description Logs a message with the specified log level using Winston
|
|
55
|
-
* @summary
|
|
56
|
-
* @param {LogLevel} level - The log level of the message
|
|
57
|
-
* @param {StringLike
|
|
58
|
-
* @param {Error} [error] -
|
|
46
|
+
* @description Logs a message with the specified log level using Winston.
|
|
47
|
+
* @summary This method overrides the base log method to use Winston for logging.
|
|
48
|
+
* @param {LogLevel} level - The log level of the message.
|
|
49
|
+
* @param {(StringLike|Error)} msg - The message to be logged or an Error object.
|
|
50
|
+
* @param {Error} [error] - An optional stack trace to include in the log.
|
|
59
51
|
* @return {void}
|
|
60
52
|
*/
|
|
61
53
|
log(level, msg, error) {
|
|
@@ -70,16 +62,17 @@ class WinstonLogger extends logging_1.MiniLogger {
|
|
|
70
62
|
}
|
|
71
63
|
exports.WinstonLogger = WinstonLogger;
|
|
72
64
|
/**
|
|
73
|
-
* @description
|
|
74
|
-
* @summary
|
|
65
|
+
* @description A factory function for creating Winston loggers.
|
|
66
|
+
* @summary This is a {@link LoggerFactory} implementation that creates {@link WinstonLogger} instances.
|
|
67
|
+
* @param {string} [context] - The context (typically the class name) for the logger.
|
|
68
|
+
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings.
|
|
69
|
+
* @param {...any} _args - Additional arguments to pass to the WinstonLogger constructor.
|
|
70
|
+
* @return {WinstonLogger} A new WinstonLogger instance.
|
|
75
71
|
* @const WinstonFactory
|
|
76
|
-
* @type {LoggerFactory}
|
|
77
|
-
* @param {string} context - The context (typically class name) for the logger
|
|
78
|
-
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings
|
|
79
|
-
* @param {...any} args - Additional arguments to pass to the WinstonLogger constructor
|
|
80
|
-
* @return {WinstonLogger} A new WinstonLogger instance
|
|
81
72
|
* @memberOf module:Logging
|
|
82
73
|
*/
|
|
83
|
-
const WinstonFactory = (context, conf,
|
|
74
|
+
const WinstonFactory = (context, conf,
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
|
+
..._args) => new WinstonLogger(context, conf);
|
|
84
77
|
exports.WinstonFactory = WinstonFactory;
|
|
85
78
|
//# sourceMappingURL=winston.js.map
|
package/lib/winston/winston.d.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import winston from "winston";
|
|
2
|
-
import Transport from "winston-transport";
|
|
3
2
|
import { Logger, LoggerFactory, LoggingConfig, StringLike } from "../types";
|
|
4
3
|
import { MiniLogger } from "../logging";
|
|
5
4
|
import { LogLevel } from "../constants";
|
|
6
5
|
/**
|
|
7
|
-
* @description A logger implementation
|
|
8
|
-
* @summary
|
|
9
|
-
*
|
|
10
|
-
* @param {
|
|
11
|
-
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings
|
|
12
|
-
* @param {Transport[]|Transport} [transports] - Winston transports to use for logging
|
|
6
|
+
* @description A logger implementation that uses Winston.
|
|
7
|
+
* @summary This class extends {@link MiniLogger} to provide logging functionality using the Winston library. It configures Winston with the appropriate transports and formats based on the logging configuration.
|
|
8
|
+
* @param {string} [cont] - The context (typically the class name) that this logger is associated with.
|
|
9
|
+
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings.
|
|
13
10
|
* @class WinstonLogger
|
|
14
11
|
* @example
|
|
15
12
|
* // Create a Winston logger for a class
|
|
@@ -24,28 +21,27 @@ import { LogLevel } from "../constants";
|
|
|
24
21
|
* methodLogger.debug('Processing data...');
|
|
25
22
|
*/
|
|
26
23
|
export declare class WinstonLogger extends MiniLogger implements Logger {
|
|
27
|
-
protected transports?: (Transport[] | Transport) | undefined;
|
|
28
24
|
protected winston: winston.Logger;
|
|
29
|
-
constructor(cont
|
|
25
|
+
constructor(cont?: string, conf?: Partial<LoggingConfig>);
|
|
26
|
+
private resolveTransports;
|
|
30
27
|
/**
|
|
31
|
-
* @description Logs a message with the specified log level using Winston
|
|
32
|
-
* @summary
|
|
33
|
-
* @param {LogLevel} level - The log level of the message
|
|
34
|
-
* @param {StringLike
|
|
35
|
-
* @param {Error} [error] -
|
|
28
|
+
* @description Logs a message with the specified log level using Winston.
|
|
29
|
+
* @summary This method overrides the base log method to use Winston for logging.
|
|
30
|
+
* @param {LogLevel} level - The log level of the message.
|
|
31
|
+
* @param {(StringLike|Error)} msg - The message to be logged or an Error object.
|
|
32
|
+
* @param {Error} [error] - An optional stack trace to include in the log.
|
|
36
33
|
* @return {void}
|
|
37
34
|
*/
|
|
38
35
|
protected log(level: LogLevel, msg: StringLike | Error, error?: Error): void;
|
|
39
36
|
}
|
|
40
37
|
/**
|
|
41
|
-
* @description
|
|
42
|
-
* @summary
|
|
38
|
+
* @description A factory function for creating Winston loggers.
|
|
39
|
+
* @summary This is a {@link LoggerFactory} implementation that creates {@link WinstonLogger} instances.
|
|
40
|
+
* @param {string} [context] - The context (typically the class name) for the logger.
|
|
41
|
+
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings.
|
|
42
|
+
* @param {...any} _args - Additional arguments to pass to the WinstonLogger constructor.
|
|
43
|
+
* @return {WinstonLogger} A new WinstonLogger instance.
|
|
43
44
|
* @const WinstonFactory
|
|
44
|
-
* @type {LoggerFactory}
|
|
45
|
-
* @param {string} context - The context (typically class name) for the logger
|
|
46
|
-
* @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings
|
|
47
|
-
* @param {...any} args - Additional arguments to pass to the WinstonLogger constructor
|
|
48
|
-
* @return {WinstonLogger} A new WinstonLogger instance
|
|
49
45
|
* @memberOf module:Logging
|
|
50
46
|
*/
|
|
51
47
|
export declare const WinstonFactory: LoggerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"winston.js","sourceRoot":"","sources":["../../src/winston/winston.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2D;AAG3D,8CAAiD;AAGjD
|
|
1
|
+
{"version":3,"file":"winston.js","sourceRoot":"","sources":["../../src/winston/winston.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2D;AAG3D,8CAAiD;AAGjD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,aAAc,SAAQ,oBAAU;IAG3C,YAAY,IAAa,EAAE,IAA6B;QACtD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAC1B,EAAE,EACF,iBAAO,CAAC,SAAS,EAAE,EACnB,IAAI,CAAC,IAAI,IAAI,EAAE,CACY,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CACtC,MAAM,CAAC,UAAsC,IAAI,SAAS,CAC5D,CAAC;QACF,MAAM,WAAW,GAAG,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACxD,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAChE,CAAC;QAEF,MAAM,aAAa,GAAkB;YACnC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU;YACV,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAEO,iBAAiB,CAAC,UAAwB;QAChD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM;YAAE,OAAO,UAAU,CAAC;QACvD,OAAO,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACgB,GAAG,CACpB,KAAe,EACf,GAAuB,EACvB,KAAa;QAEb,MAAM,OAAO,GAAa;YACxB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;SAC3C,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF;AApDD,sCAoDC;AAED;;;;;;;;;GASG;AACI,MAAM,cAAc,GAAkB,CAC3C,OAAgB,EAChB,IAA6B;AAC7B,6DAA6D;AAC7D,GAAG,KAAY,EACA,EAAE,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AALxC,QAAA,cAAc,kBAK0B"}
|