core-services-sdk 1.3.91 → 1.3.92

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-services-sdk",
3
- "version": "1.3.91",
3
+ "version": "1.3.92",
4
4
  "main": "src/index.js",
5
5
  "type": "module",
6
6
  "types": "types/index.d.ts",
@@ -31,6 +31,7 @@ const isValidLogger = (logger) =>
31
31
  * - `undefined` → pino with level 'info'
32
32
  * - `true` → pino with level 'info'
33
33
  * - `{ logger: true, level?: string }` → pino with given level
34
+ * - `{ level?: string, base?: object, ... }` → pino with provided options
34
35
  * - `{ logger: LoggerObject }` → use provided logger
35
36
  * - fallback → dummy logger
36
37
  *
@@ -64,6 +65,13 @@ export const getLogger = (option) => {
64
65
  if (isValidLogger(logger)) {
65
66
  return logger
66
67
  }
68
+
69
+ // No `logger` key — treat the whole object as pino options
70
+ if (!('logger' in option)) {
71
+ const pinoLogger = pino(option)
72
+ pinoLogger.info('[getLogger] Using Pino logger with provided options.')
73
+ return pinoLogger
74
+ }
67
75
  }
68
76
 
69
77
  // Invalid or no-op fallback
@@ -37,31 +37,45 @@ describe('getLogger', () => {
37
37
  expect(result).toBe(mockLogger)
38
38
  })
39
39
 
40
- it('returns the dummy logger when logger is invalid (missing methods)', () => {
40
+ it('returns a pino logger when called with pino options (no logger key)', () => {
41
+ const logger = getLogger({ level: 'warn' })
42
+ expect(typeof logger.info).toBe('function')
43
+ // @ts-ignore
44
+ expect(logger.level).toBe('warn')
45
+ })
46
+
47
+ it('passes through all pino options when no logger key is present', () => {
48
+ const logger = getLogger({ level: 'debug', base: { service: 'test-svc' } })
49
+ expect(typeof logger.info).toBe('function')
50
+ // @ts-ignore
51
+ expect(logger.level).toBe('debug')
52
+ })
53
+
54
+ it('treats object without logger key as pino options, not dummy logger', () => {
55
+ const result = getLogger({ someOtherKey: 123 })
56
+ // Should be a real pino logger, not the dummy logger
57
+ expect(typeof result.info).toBe('function')
58
+ // @ts-ignore — pino loggers have a level property
59
+ expect(result.level).toBeDefined()
60
+ })
61
+
62
+ it('returns the dummy logger when logger key is present but invalid', () => {
41
63
  const invalidLogger = { info: () => {}, warn: () => {} } // missing required methods
42
64
  const logger = getLogger({ logger: invalidLogger })
43
65
 
44
66
  expect(logger.info).toBeDefined()
45
- expect(logger.warn).toBeDefined()
46
- expect(logger.error).toBeDefined()
47
- expect(logger.debug).toBeDefined()
48
- expect(logger.fatal).toBeDefined()
49
- expect(logger.trace).toBeDefined()
50
-
51
67
  // dummy logger methods are no-ops
52
68
  expect(() => logger.info('hello')).not.toThrow()
53
69
  // @ts-ignore
54
70
  expect(logger.info()).toBeUndefined()
55
71
  })
56
72
 
57
- it('returns the dummy logger when called with unrelated object', () => {
58
- const result = getLogger({ someOtherKey: 123 })
59
- expect(result.info).toBeDefined()
60
- expect(result.warn).toBeDefined()
61
- expect(result.error).toBeDefined()
62
- expect(result.debug).toBeDefined()
63
- expect(result.fatal).toBeDefined()
64
- expect(result.trace).toBeDefined()
73
+ it('returns the dummy logger for non-object, non-boolean values', () => {
74
+ // @ts-ignore testing fallback
75
+ const logger = getLogger('invalid')
76
+ expect(logger.info).toBeDefined()
77
+ // @ts-ignore
78
+ expect(logger.info()).toBeUndefined()
65
79
  })
66
80
 
67
81
  it('logs a message when using internal pino with level warn', () => {