* Gets a custom Pino key from a logger instance by searching for the symbol. * Pino uses non-global symbols like Symbol('pino.messageKey'): https://github.com/pinojs/pino/blob/8a816c0b1f72de5ae9181f3bb402109b66f7d812/lib/symbols.js
(logger: Pino, symbolName: string, defaultKey: string)
| 28 | * Pino uses non-global symbols like Symbol('pino.messageKey'): https://github.com/pinojs/pino/blob/8a816c0b1f72de5ae9181f3bb402109b66f7d812/lib/symbols.js |
| 29 | */ |
| 30 | function getPinoKey(logger: Pino, symbolName: string, defaultKey: string): string { |
| 31 | const symbols = Object.getOwnPropertySymbols(logger); |
| 32 | const symbolString = `Symbol(${symbolName})`; |
| 33 | for (const sym of symbols) { |
| 34 | if (sym.toString() === symbolString) { |
| 35 | const value = logger[sym]; |
| 36 | return typeof value === 'string' ? value : defaultKey; |
| 37 | } |
| 38 | } |
| 39 | return defaultKey; |
| 40 | } |
| 41 | |
| 42 | type MergeObject = { |
| 43 | [key: string]: unknown; |