@arivlabs/logger 1.0.0 → 1.2.0
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/CHANGELOG.md +23 -0
- package/README.md +34 -4
- package/dist/index.d.ts +60 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -22
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +75 -29
- package/dist/index.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/__mocks__/pino.d.ts +0 -9
- package/dist/__mocks__/pino.d.ts.map +0 -1
- package/dist/__mocks__/pino.js +0 -20
- package/dist/__mocks__/pino.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,29 @@ All notable changes to `@arivlabs/logger` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.2.0] - 2024-12-23
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Proper error logging**: `LogData` type now explicitly supports `err` property for Error objects
|
|
13
|
+
- Pino's error serializer properly captures error type, message, stack, and custom properties
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Updated documentation to show correct error logging pattern: `{ err: error }` instead of `{ error: err.message }`
|
|
18
|
+
|
|
19
|
+
## [1.1.0] - 2024-12-23
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **Flexible calling convention**: Now supports intuitive `logger.info('message', { data })` style in addition to pino's native `logger.info({ msg: 'message', data })` style
|
|
24
|
+
- Better compatibility with common logging patterns (Winston, console.log style)
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Logger methods now accept both calling styles, making migration from other logging libraries easier
|
|
29
|
+
- `domain()` and `withContext()` now return `ArivLogger` instead of `PinoLogger` for consistent API
|
|
30
|
+
|
|
8
31
|
## [1.0.0] - 2024-12-23
|
|
9
32
|
|
|
10
33
|
### Added
|
package/README.md
CHANGED
|
@@ -19,13 +19,19 @@ import { createLogger } from '@arivlabs/logger';
|
|
|
19
19
|
// Create a logger for your service
|
|
20
20
|
const logger = createLogger({ service: 'api-gateway' });
|
|
21
21
|
|
|
22
|
-
// Basic logging
|
|
22
|
+
// Basic logging - intuitive style (recommended)
|
|
23
|
+
logger.info('Server started', { port: 3000 });
|
|
24
|
+
|
|
25
|
+
// Error logging - use { err } for proper serialization
|
|
26
|
+
logger.error('Request failed', { err: error }); // ✅ Correct
|
|
27
|
+
// logger.error('Request failed', { error: err.message }); // ❌ Loses type/stack
|
|
28
|
+
|
|
29
|
+
// Also works: pino native style
|
|
23
30
|
logger.info({ msg: 'Server started', port: 3000 });
|
|
24
|
-
logger.error({ msg: 'Something failed', error: err.message });
|
|
25
31
|
|
|
26
32
|
// Domain-specific logging
|
|
27
33
|
const discoveryLog = logger.domain('discovery');
|
|
28
|
-
discoveryLog.info(
|
|
34
|
+
discoveryLog.info('Job created', { jobId: '123' });
|
|
29
35
|
|
|
30
36
|
// Request context logging
|
|
31
37
|
const reqLog = logger.withContext({
|
|
@@ -33,7 +39,7 @@ const reqLog = logger.withContext({
|
|
|
33
39
|
tenantId: 'tenant-1',
|
|
34
40
|
domain: 'discovery',
|
|
35
41
|
});
|
|
36
|
-
reqLog.info(
|
|
42
|
+
reqLog.info('Processing request');
|
|
37
43
|
```
|
|
38
44
|
|
|
39
45
|
## CloudWatch Insights Queries
|
|
@@ -97,6 +103,30 @@ Pretty output (development):
|
|
|
97
103
|
10:30:00 Z [api-gateway:discovery] abc-123 Job created
|
|
98
104
|
```
|
|
99
105
|
|
|
106
|
+
## Error Logging Best Practices
|
|
107
|
+
|
|
108
|
+
Always use `{ err: errorObject }` when logging errors:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
try {
|
|
112
|
+
await someOperation();
|
|
113
|
+
} catch (error) {
|
|
114
|
+
// ✅ Correct - pino serializes the full error
|
|
115
|
+
logger.error('Operation failed', { err: error });
|
|
116
|
+
|
|
117
|
+
// ❌ Bad - loses error type, stack, and custom properties
|
|
118
|
+
logger.error('Operation failed', { error: error.message });
|
|
119
|
+
logger.error('Operation failed', { error: error.message, stack: error.stack });
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Pino's error serializer captures:
|
|
124
|
+
|
|
125
|
+
- Error name/type (e.g., `TypeError`, `ValidationError`)
|
|
126
|
+
- Error message
|
|
127
|
+
- Stack trace
|
|
128
|
+
- Custom error properties
|
|
129
|
+
|
|
100
130
|
## Available Domains
|
|
101
131
|
|
|
102
132
|
- `discovery` - Discovery scanning
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Logger as PinoLogger } from 'pino';
|
|
2
1
|
/**
|
|
3
2
|
* Service names for ArivLabs services
|
|
4
3
|
*/
|
|
@@ -21,13 +20,53 @@ export interface LoggerConfig {
|
|
|
21
20
|
pretty?: boolean;
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
24
|
-
*
|
|
23
|
+
* Log data object
|
|
24
|
+
* Use `err` property for Error objects - pino will serialize them properly
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* logger.error('Request failed', { err: error }); // Correct - uses pino's error serializer
|
|
28
|
+
* logger.error('Request failed', { error: err.message }); // Bad - loses error type/stack
|
|
29
|
+
*/
|
|
30
|
+
export type LogData = Record<string, unknown> & {
|
|
31
|
+
/** Pass Error objects here for proper serialization (type, message, stack, custom props) */
|
|
32
|
+
err?: Error | unknown;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Flexible log method signature supporting multiple calling conventions
|
|
36
|
+
*/
|
|
37
|
+
export interface FlexibleLogFn {
|
|
38
|
+
(msg: string, data?: LogData): void;
|
|
39
|
+
(obj: LogData & {
|
|
40
|
+
msg?: string;
|
|
41
|
+
}): void;
|
|
42
|
+
(obj: LogData, msg?: string): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extended logger interface with domain support and flexible API
|
|
25
46
|
*/
|
|
26
|
-
export interface ArivLogger
|
|
47
|
+
export interface ArivLogger {
|
|
48
|
+
/** Log at trace level */
|
|
49
|
+
trace: FlexibleLogFn;
|
|
50
|
+
/** Log at debug level */
|
|
51
|
+
debug: FlexibleLogFn;
|
|
52
|
+
/** Log at info level */
|
|
53
|
+
info: FlexibleLogFn;
|
|
54
|
+
/** Log at warn level */
|
|
55
|
+
warn: FlexibleLogFn;
|
|
56
|
+
/** Log at error level */
|
|
57
|
+
error: FlexibleLogFn;
|
|
58
|
+
/** Log at fatal level */
|
|
59
|
+
fatal: FlexibleLogFn;
|
|
27
60
|
/** Create a child logger for a specific domain */
|
|
28
|
-
domain: (domain: LogDomain) =>
|
|
61
|
+
domain: (domain: LogDomain) => ArivLogger;
|
|
29
62
|
/** Create a child logger with request context */
|
|
30
|
-
withContext: (context: RequestContext) =>
|
|
63
|
+
withContext: (context: RequestContext) => ArivLogger;
|
|
64
|
+
/** Create a child logger with additional bindings */
|
|
65
|
+
child: (bindings: LogData) => ArivLogger;
|
|
66
|
+
/** Check if level is enabled */
|
|
67
|
+
isLevelEnabled: (level: string) => boolean;
|
|
68
|
+
/** Current log level */
|
|
69
|
+
level: string;
|
|
31
70
|
}
|
|
32
71
|
/**
|
|
33
72
|
* Request context for correlation
|
|
@@ -41,18 +80,29 @@ export interface RequestContext {
|
|
|
41
80
|
/**
|
|
42
81
|
* Create a structured logger for an ArivLabs service
|
|
43
82
|
*
|
|
83
|
+
* Supports flexible calling conventions:
|
|
84
|
+
* - Intuitive style: `logger.info('Message', { key: value })`
|
|
85
|
+
* - Pino native style: `logger.info({ msg: 'Message', key: value })`
|
|
86
|
+
*
|
|
44
87
|
* @example
|
|
45
88
|
* ```typescript
|
|
46
89
|
* import { createLogger } from '@arivlabs/logger';
|
|
47
90
|
*
|
|
48
91
|
* const logger = createLogger({ service: 'api-gateway' });
|
|
49
92
|
*
|
|
50
|
-
* // Basic logging
|
|
93
|
+
* // Basic logging (intuitive style - recommended)
|
|
94
|
+
* logger.info('Server started', { port: 3000 });
|
|
95
|
+
*
|
|
96
|
+
* // Error logging - use { err } for proper serialization
|
|
97
|
+
* logger.error('Request failed', { err: error }); // ✅ Correct
|
|
98
|
+
* logger.error('Request failed', { error: err.message }); // ❌ Bad - loses info
|
|
99
|
+
*
|
|
100
|
+
* // Also works: pino native style
|
|
51
101
|
* logger.info({ msg: 'Server started', port: 3000 });
|
|
52
102
|
*
|
|
53
103
|
* // Domain-specific logging
|
|
54
104
|
* const discoveryLog = logger.domain('discovery');
|
|
55
|
-
* discoveryLog.info(
|
|
105
|
+
* discoveryLog.info('Job created', { jobId: '123' });
|
|
56
106
|
*
|
|
57
107
|
* // Request context logging
|
|
58
108
|
* const reqLog = logger.withContext({
|
|
@@ -60,7 +110,7 @@ export interface RequestContext {
|
|
|
60
110
|
* tenantId: 'tenant-1',
|
|
61
111
|
* domain: 'discovery'
|
|
62
112
|
* });
|
|
63
|
-
* reqLog.info(
|
|
113
|
+
* reqLog.info('Processing request');
|
|
64
114
|
* ```
|
|
65
115
|
*
|
|
66
116
|
* CloudWatch Insights queries:
|
|
@@ -74,11 +124,11 @@ export declare function createLogger(config: LoggerConfig): ArivLogger;
|
|
|
74
124
|
* Create a domain-specific child logger
|
|
75
125
|
* @deprecated Use logger.domain() instead
|
|
76
126
|
*/
|
|
77
|
-
export declare function createDomainLogger(logger:
|
|
127
|
+
export declare function createDomainLogger(logger: ArivLogger, domain: LogDomain): ArivLogger;
|
|
78
128
|
/**
|
|
79
129
|
* Create a child logger with request context
|
|
80
130
|
* @deprecated Use logger.withContext() instead
|
|
81
131
|
*/
|
|
82
|
-
export declare function createRequestLogger(logger:
|
|
132
|
+
export declare function createRequestLogger(logger: ArivLogger, domain: LogDomain, correlationId: string, userId?: string, tenantId?: string): ArivLogger;
|
|
83
133
|
export type { Logger as PinoLogger } from 'pino';
|
|
84
134
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,21 +7,86 @@ exports.createLogger = createLogger;
|
|
|
7
7
|
exports.createDomainLogger = createDomainLogger;
|
|
8
8
|
exports.createRequestLogger = createRequestLogger;
|
|
9
9
|
const pino_1 = __importDefault(require("pino"));
|
|
10
|
+
/**
|
|
11
|
+
* Wrap a pino log method to support flexible calling conventions
|
|
12
|
+
*/
|
|
13
|
+
function wrapLogMethod(pinoLogger, level) {
|
|
14
|
+
return function (msgOrObj, dataOrMsg) {
|
|
15
|
+
if (typeof msgOrObj === 'string') {
|
|
16
|
+
// Called as: logger.info('message') or logger.info('message', { data })
|
|
17
|
+
if (dataOrMsg && typeof dataOrMsg === 'object') {
|
|
18
|
+
pinoLogger[level](dataOrMsg, msgOrObj);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
pinoLogger[level](msgOrObj);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// Called as: logger.info({ msg: 'message', data }) or logger.info({ data }, 'message')
|
|
26
|
+
if (typeof dataOrMsg === 'string') {
|
|
27
|
+
pinoLogger[level](msgOrObj, dataOrMsg);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
pinoLogger[level](msgOrObj);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Wrap a pino logger with flexible API
|
|
37
|
+
*/
|
|
38
|
+
function wrapLogger(pinoLogger) {
|
|
39
|
+
const wrapped = {
|
|
40
|
+
trace: wrapLogMethod(pinoLogger, 'trace'),
|
|
41
|
+
debug: wrapLogMethod(pinoLogger, 'debug'),
|
|
42
|
+
info: wrapLogMethod(pinoLogger, 'info'),
|
|
43
|
+
warn: wrapLogMethod(pinoLogger, 'warn'),
|
|
44
|
+
error: wrapLogMethod(pinoLogger, 'error'),
|
|
45
|
+
fatal: wrapLogMethod(pinoLogger, 'fatal'),
|
|
46
|
+
domain: (domain) => wrapLogger(pinoLogger.child({ domain })),
|
|
47
|
+
withContext: (context) => wrapLogger(pinoLogger.child({
|
|
48
|
+
domain: context.domain,
|
|
49
|
+
correlation_id: context.correlationId,
|
|
50
|
+
user_id: context.userId,
|
|
51
|
+
tenant_id: context.tenantId,
|
|
52
|
+
})),
|
|
53
|
+
child: (bindings) => wrapLogger(pinoLogger.child(bindings)),
|
|
54
|
+
isLevelEnabled: (level) => pinoLogger.isLevelEnabled(level),
|
|
55
|
+
get level() {
|
|
56
|
+
return pinoLogger.level;
|
|
57
|
+
},
|
|
58
|
+
set level(lvl) {
|
|
59
|
+
pinoLogger.level = lvl;
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
return wrapped;
|
|
63
|
+
}
|
|
10
64
|
/**
|
|
11
65
|
* Create a structured logger for an ArivLabs service
|
|
12
66
|
*
|
|
67
|
+
* Supports flexible calling conventions:
|
|
68
|
+
* - Intuitive style: `logger.info('Message', { key: value })`
|
|
69
|
+
* - Pino native style: `logger.info({ msg: 'Message', key: value })`
|
|
70
|
+
*
|
|
13
71
|
* @example
|
|
14
72
|
* ```typescript
|
|
15
73
|
* import { createLogger } from '@arivlabs/logger';
|
|
16
74
|
*
|
|
17
75
|
* const logger = createLogger({ service: 'api-gateway' });
|
|
18
76
|
*
|
|
19
|
-
* // Basic logging
|
|
77
|
+
* // Basic logging (intuitive style - recommended)
|
|
78
|
+
* logger.info('Server started', { port: 3000 });
|
|
79
|
+
*
|
|
80
|
+
* // Error logging - use { err } for proper serialization
|
|
81
|
+
* logger.error('Request failed', { err: error }); // ✅ Correct
|
|
82
|
+
* logger.error('Request failed', { error: err.message }); // ❌ Bad - loses info
|
|
83
|
+
*
|
|
84
|
+
* // Also works: pino native style
|
|
20
85
|
* logger.info({ msg: 'Server started', port: 3000 });
|
|
21
86
|
*
|
|
22
87
|
* // Domain-specific logging
|
|
23
88
|
* const discoveryLog = logger.domain('discovery');
|
|
24
|
-
* discoveryLog.info(
|
|
89
|
+
* discoveryLog.info('Job created', { jobId: '123' });
|
|
25
90
|
*
|
|
26
91
|
* // Request context logging
|
|
27
92
|
* const reqLog = logger.withContext({
|
|
@@ -29,7 +94,7 @@ const pino_1 = __importDefault(require("pino"));
|
|
|
29
94
|
* tenantId: 'tenant-1',
|
|
30
95
|
* domain: 'discovery'
|
|
31
96
|
* });
|
|
32
|
-
* reqLog.info(
|
|
97
|
+
* reqLog.info('Processing request');
|
|
33
98
|
* ```
|
|
34
99
|
*
|
|
35
100
|
* CloudWatch Insights queries:
|
|
@@ -72,38 +137,25 @@ function createLogger(config) {
|
|
|
72
137
|
};
|
|
73
138
|
}
|
|
74
139
|
const baseLogger = (0, pino_1.default)(pinoOptions);
|
|
75
|
-
|
|
76
|
-
const logger = baseLogger;
|
|
77
|
-
logger.domain = (domain) => {
|
|
78
|
-
return baseLogger.child({ domain });
|
|
79
|
-
};
|
|
80
|
-
logger.withContext = (context) => {
|
|
81
|
-
return baseLogger.child({
|
|
82
|
-
domain: context.domain,
|
|
83
|
-
correlation_id: context.correlationId,
|
|
84
|
-
user_id: context.userId,
|
|
85
|
-
tenant_id: context.tenantId,
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
return logger;
|
|
140
|
+
return wrapLogger(baseLogger);
|
|
89
141
|
}
|
|
90
142
|
/**
|
|
91
143
|
* Create a domain-specific child logger
|
|
92
144
|
* @deprecated Use logger.domain() instead
|
|
93
145
|
*/
|
|
94
146
|
function createDomainLogger(logger, domain) {
|
|
95
|
-
return logger.
|
|
147
|
+
return logger.domain(domain);
|
|
96
148
|
}
|
|
97
149
|
/**
|
|
98
150
|
* Create a child logger with request context
|
|
99
151
|
* @deprecated Use logger.withContext() instead
|
|
100
152
|
*/
|
|
101
153
|
function createRequestLogger(logger, domain, correlationId, userId, tenantId) {
|
|
102
|
-
return logger.
|
|
154
|
+
return logger.withContext({
|
|
103
155
|
domain,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
156
|
+
correlationId,
|
|
157
|
+
userId,
|
|
158
|
+
tenantId,
|
|
107
159
|
});
|
|
108
160
|
}
|
|
109
161
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.test.js
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const index_1 = require("./index");
|
|
4
|
-
//
|
|
5
|
-
jest.mock('pino')
|
|
4
|
+
// Mock pino module
|
|
5
|
+
jest.mock('pino', () => {
|
|
6
|
+
const createMockLogger = () => ({
|
|
7
|
+
info: jest.fn(),
|
|
8
|
+
error: jest.fn(),
|
|
9
|
+
warn: jest.fn(),
|
|
10
|
+
debug: jest.fn(),
|
|
11
|
+
trace: jest.fn(),
|
|
12
|
+
fatal: jest.fn(),
|
|
13
|
+
child: jest.fn().mockImplementation(() => createMockLogger()),
|
|
14
|
+
isLevelEnabled: jest.fn().mockReturnValue(true),
|
|
15
|
+
level: 'info',
|
|
16
|
+
});
|
|
17
|
+
const pino = jest.fn(() => createMockLogger());
|
|
18
|
+
pino.stdSerializers = {
|
|
19
|
+
req: jest.fn(),
|
|
20
|
+
res: jest.fn(),
|
|
21
|
+
err: jest.fn(),
|
|
22
|
+
};
|
|
23
|
+
return { default: pino, __esModule: true };
|
|
24
|
+
});
|
|
6
25
|
describe('@arivlabs/logger', () => {
|
|
7
26
|
beforeEach(() => {
|
|
8
27
|
jest.clearAllMocks();
|
|
@@ -15,6 +34,8 @@ describe('@arivlabs/logger', () => {
|
|
|
15
34
|
expect(typeof logger.error).toBe('function');
|
|
16
35
|
expect(typeof logger.warn).toBe('function');
|
|
17
36
|
expect(typeof logger.debug).toBe('function');
|
|
37
|
+
expect(typeof logger.trace).toBe('function');
|
|
38
|
+
expect(typeof logger.fatal).toBe('function');
|
|
18
39
|
});
|
|
19
40
|
it('should accept all valid service names', () => {
|
|
20
41
|
const services = [
|
|
@@ -57,12 +78,41 @@ describe('@arivlabs/logger', () => {
|
|
|
57
78
|
expect(logger).toBeDefined();
|
|
58
79
|
});
|
|
59
80
|
});
|
|
81
|
+
describe('flexible calling convention', () => {
|
|
82
|
+
it('should support intuitive style: logger.info(message, data)', () => {
|
|
83
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
84
|
+
// Just verify no error is thrown and the method exists
|
|
85
|
+
expect(() => logger.info('Server started', { port: 3000 })).not.toThrow();
|
|
86
|
+
});
|
|
87
|
+
it('should support message-only style: logger.info(message)', () => {
|
|
88
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
89
|
+
expect(() => logger.info('Server started')).not.toThrow();
|
|
90
|
+
});
|
|
91
|
+
it('should support pino native style: logger.info({ msg, data })', () => {
|
|
92
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
93
|
+
expect(() => logger.info({ msg: 'Server started', port: 3000 })).not.toThrow();
|
|
94
|
+
});
|
|
95
|
+
it('should support pino native style with separate message: logger.info(data, message)', () => {
|
|
96
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
97
|
+
expect(() => logger.info({ port: 3000 }, 'Server started')).not.toThrow();
|
|
98
|
+
});
|
|
99
|
+
it('should work for all log levels', () => {
|
|
100
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
101
|
+
expect(() => logger.trace('Trace message', { data: 1 })).not.toThrow();
|
|
102
|
+
expect(() => logger.debug('Debug message', { data: 2 })).not.toThrow();
|
|
103
|
+
expect(() => logger.info('Info message', { data: 3 })).not.toThrow();
|
|
104
|
+
expect(() => logger.warn('Warn message', { data: 4 })).not.toThrow();
|
|
105
|
+
expect(() => logger.error('Error message', { data: 5 })).not.toThrow();
|
|
106
|
+
expect(() => logger.fatal('Fatal message', { data: 6 })).not.toThrow();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
60
109
|
describe('logger.domain()', () => {
|
|
61
110
|
it('should create a child logger with domain', () => {
|
|
62
111
|
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
63
112
|
const discoveryLogger = logger.domain('discovery');
|
|
64
|
-
expect(logger.child).toHaveBeenCalledWith({ domain: 'discovery' });
|
|
65
113
|
expect(discoveryLogger).toBeDefined();
|
|
114
|
+
expect(typeof discoveryLogger.info).toBe('function');
|
|
115
|
+
expect(typeof discoveryLogger.error).toBe('function');
|
|
66
116
|
});
|
|
67
117
|
it('should accept all valid domains', () => {
|
|
68
118
|
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
@@ -83,10 +133,16 @@ describe('@arivlabs/logger', () => {
|
|
|
83
133
|
'system',
|
|
84
134
|
];
|
|
85
135
|
domains.forEach((domain) => {
|
|
86
|
-
logger.domain(domain);
|
|
87
|
-
expect(
|
|
136
|
+
const childLogger = logger.domain(domain);
|
|
137
|
+
expect(childLogger).toBeDefined();
|
|
138
|
+
expect(typeof childLogger.info).toBe('function');
|
|
88
139
|
});
|
|
89
140
|
});
|
|
141
|
+
it('should return a wrapped logger supporting flexible calls', () => {
|
|
142
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
143
|
+
const discoveryLogger = logger.domain('discovery');
|
|
144
|
+
expect(() => discoveryLogger.info('Job started', { jobId: '123' })).not.toThrow();
|
|
145
|
+
});
|
|
90
146
|
});
|
|
91
147
|
describe('logger.withContext()', () => {
|
|
92
148
|
it('should create a child logger with full context', () => {
|
|
@@ -97,38 +153,28 @@ describe('@arivlabs/logger', () => {
|
|
|
97
153
|
tenantId: 'tenant-789',
|
|
98
154
|
domain: 'discovery',
|
|
99
155
|
});
|
|
100
|
-
expect(logger.child).toHaveBeenCalledWith({
|
|
101
|
-
domain: 'discovery',
|
|
102
|
-
correlation_id: 'abc-123',
|
|
103
|
-
user_id: 'user-456',
|
|
104
|
-
tenant_id: 'tenant-789',
|
|
105
|
-
});
|
|
106
156
|
expect(requestLogger).toBeDefined();
|
|
157
|
+
expect(typeof requestLogger.info).toBe('function');
|
|
107
158
|
});
|
|
108
159
|
it('should create a child logger with minimal context', () => {
|
|
109
160
|
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
110
|
-
logger.withContext({
|
|
161
|
+
const requestLogger = logger.withContext({
|
|
111
162
|
correlationId: 'abc-123',
|
|
112
163
|
});
|
|
113
|
-
expect(
|
|
114
|
-
domain: undefined,
|
|
115
|
-
correlation_id: 'abc-123',
|
|
116
|
-
user_id: undefined,
|
|
117
|
-
tenant_id: undefined,
|
|
118
|
-
});
|
|
164
|
+
expect(requestLogger).toBeDefined();
|
|
119
165
|
});
|
|
120
|
-
it('should
|
|
166
|
+
it('should return a wrapped logger supporting flexible calls', () => {
|
|
121
167
|
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
122
|
-
logger.withContext({
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
168
|
+
const reqLogger = logger.withContext({ correlationId: 'abc-123' });
|
|
169
|
+
expect(() => reqLogger.error('Request failed', { status: 500 })).not.toThrow();
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
describe('logger.child()', () => {
|
|
173
|
+
it('should create a child logger with custom bindings', () => {
|
|
174
|
+
const logger = (0, index_1.createLogger)({ service: 'api-gateway' });
|
|
175
|
+
const childLogger = logger.child({ customField: 'value' });
|
|
176
|
+
expect(childLogger).toBeDefined();
|
|
177
|
+
expect(typeof childLogger.info).toBe('function');
|
|
132
178
|
});
|
|
133
179
|
});
|
|
134
180
|
describe('type exports', () => {
|
package/dist/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;AAAA,mCAA0F;AAE1F,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;AAAA,mCAA0F;AAE1F,mBAAmB;AACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;IACrB,MAAM,gBAAgB,GAAG,GAAuC,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC7D,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QAC/C,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC9C,IAA+C,CAAC,cAAc,GAAG;QAChE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;KACf,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,QAAQ,GAAkB;gBAC9B,aAAa;gBACb,eAAe;gBACf,0BAA0B;gBAC1B,sBAAsB;gBACtB,mBAAmB;gBACnB,UAAU;gBACV,eAAe;aAChB,CAAC;YAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;gBAC1B,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,YAAY;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;gBAC1B,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;gBAC1B,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,uDAAuD;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;YAC5F,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,OAAO,GAAgB;gBAC3B,WAAW;gBACX,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,YAAY;gBACZ,OAAO;gBACP,OAAO;gBACP,WAAW;gBACX,UAAU;gBACV,SAAS;gBACT,OAAO;gBACP,OAAO;gBACP,QAAQ;aACT,CAAC;YAEF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACxD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC;gBACvC,aAAa,EAAE,SAAS;gBACxB,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC;gBACvC,aAAa,EAAE,SAAS;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAExD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAE3D,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,OAAO,GAAgB,aAAa,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAc,WAAW,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAe,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAEhC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;YACrC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;YACpC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;gBAC1B,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,YAAY;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/dist/__mocks__/pino.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pino.d.ts","sourceRoot":"","sources":["../../src/__mocks__/pino.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,IAAI,EAAgC,IAAI,CAAC,IAAI,GAAG;IACpD,cAAc,EAAE;QACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;QACf,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;QACf,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;KAChB,CAAC;CACH,CAAC;AAQF,eAAe,IAAI,CAAC"}
|
package/dist/__mocks__/pino.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const mockChild = jest.fn().mockReturnThis();
|
|
4
|
-
const mockLogger = {
|
|
5
|
-
info: jest.fn(),
|
|
6
|
-
warn: jest.fn(),
|
|
7
|
-
error: jest.fn(),
|
|
8
|
-
debug: jest.fn(),
|
|
9
|
-
fatal: jest.fn(),
|
|
10
|
-
trace: jest.fn(),
|
|
11
|
-
child: mockChild,
|
|
12
|
-
};
|
|
13
|
-
const pino = jest.fn(() => mockLogger);
|
|
14
|
-
pino.stdSerializers = {
|
|
15
|
-
req: jest.fn(),
|
|
16
|
-
res: jest.fn(),
|
|
17
|
-
err: jest.fn(),
|
|
18
|
-
};
|
|
19
|
-
exports.default = pino;
|
|
20
|
-
//# sourceMappingURL=pino.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pino.js","sourceRoot":"","sources":["../../src/__mocks__/pino.ts"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC;AAE7C,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;IAChB,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAMpC,CAAC;AAEF,IAAI,CAAC,cAAc,GAAG;IACpB,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;CACf,CAAC;AAEF,kBAAe,IAAI,CAAC"}
|