Comparing version 8.16.2 to 8.17.1
@@ -196,2 +196,21 @@ # Transports | ||
### Writing to a custom transport & stdout | ||
In case you want to both use a custom transport, and output the log entries with default processing to STDOUT, you can use 'pino/file' transport configured with `destination: 1`: | ||
```js | ||
const transports = [ | ||
{ | ||
target: 'pino/file', | ||
options: { destination: 1 } // this writes to STDOUT | ||
}, | ||
{ | ||
target: 'my-custom-transport', | ||
options: { someParameter: true } | ||
} | ||
] | ||
const logger = pino(pino.transport({ targets: transports }) | ||
``` | ||
### Creating a transport pipeline | ||
@@ -242,5 +261,6 @@ | ||
}, { | ||
// Use target: 'pino/file' to write to stdout | ||
// without any change. | ||
target: 'pino-pretty' | ||
// Use target: 'pino/file' with STDOUT descriptor 1 to write | ||
// logs without any change. | ||
target: 'pino/file', | ||
options: { destination: 1 } | ||
}] | ||
@@ -368,3 +388,3 @@ } | ||
write (chunk, enc, cb) { | ||
// apply a transform and send to stdout | ||
// apply a transform and send to STDOUT | ||
console.log(chunk.toString().toUpperCase()) | ||
@@ -371,0 +391,0 @@ cb() |
'use strict' | ||
module.exports = { version: '8.16.2' } | ||
module.exports = { version: '8.17.1' } |
{ | ||
"name": "pino", | ||
"version": "8.16.2", | ||
"version": "8.17.1", | ||
"description": "super fast, all natural json logger", | ||
@@ -99,3 +99,3 @@ "main": "pino.js", | ||
"ts-node": "^10.9.1", | ||
"tsd": "^0.24.1", | ||
"tsd": "^0.29.0", | ||
"typescript": "^5.1.3", | ||
@@ -102,0 +102,0 @@ "winston": "^3.7.2" |
@@ -34,3 +34,3 @@ // Project: https://github.com/pinojs/pino.git, http://getpino.io | ||
type CustomLevelLogger<Options> = Options extends { customLevels: Record<string, number> } ? Record<keyof Options["customLevels"], LogFn> : Record<never, LogFn> | ||
type CustomLevelLogger<CustomLevels extends string> = { [level in CustomLevels]: LogFn } | ||
@@ -41,3 +41,3 @@ /** | ||
*/ | ||
type OnChildCallback<Options = LoggerOptions> = <ChildOptions extends pino.ChildLoggerOptions>(child: pino.Logger<Options & ChildOptions>) => void | ||
type OnChildCallback<CustomLevels extends string = never> = (child: pino.Logger<CustomLevels>) => void | ||
@@ -50,3 +50,3 @@ export interface redactOptions { | ||
export interface LoggerExtras<Options = LoggerOptions> extends EventEmitter { | ||
export interface LoggerExtras<CustomLevels extends string = never> extends EventEmitter { | ||
/** | ||
@@ -66,3 +66,3 @@ * Exposes the Pino package version. Also available on the exported pino function. | ||
*/ | ||
customLevels: { [key: string]: number }; | ||
customLevels: { [level in CustomLevels]: number }; | ||
/** | ||
@@ -87,3 +87,3 @@ * Use only defined `customLevels` and omit Pino's levels. | ||
*/ | ||
child<ChildOptions extends pino.ChildLoggerOptions = {}>(bindings: pino.Bindings, options?: ChildOptions): pino.Logger<Options & ChildOptions>; | ||
child<ChildCustomLevels extends string = never>(bindings: pino.Bindings, options?: ChildLoggerOptions<ChildCustomLevels>): pino.Logger<CustomLevels | ChildCustomLevels>; | ||
@@ -93,3 +93,3 @@ /** | ||
*/ | ||
onChild: OnChildCallback<Options>; | ||
onChild: OnChildCallback<CustomLevels>; | ||
@@ -104,8 +104,8 @@ /** | ||
*/ | ||
on<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
addListener<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
once<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
prependListener<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
prependOnceListener<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
removeListener<Opts = Options>(event: "level-change", listener: pino.LevelChangeEventListener<Opts>): this; | ||
on(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
addListener(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
once(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
prependListener(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
prependOnceListener(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
removeListener(event: "level-change", listener: pino.LevelChangeEventListener<CustomLevels>): this; | ||
@@ -235,3 +235,3 @@ /** | ||
type LevelChangeEventListener<Options = LoggerOptions> = ( | ||
type LevelChangeEventListener<CustomLevels extends string = never> = ( | ||
lvl: LevelWithSilentOrString, | ||
@@ -241,3 +241,3 @@ val: number, | ||
prevVal: number, | ||
logger: Logger<Options> | ||
logger: Logger<CustomLevels> | ||
) => void; | ||
@@ -247,3 +247,3 @@ | ||
type Logger<Options = LoggerOptions> = BaseLogger & LoggerExtras<Options> & CustomLevelLogger<Options>; | ||
type Logger<CustomLevels extends string = never> = BaseLogger & LoggerExtras<CustomLevels> & CustomLevelLogger<CustomLevels>; | ||
@@ -333,3 +333,3 @@ type SerializedError = pinoStdSerializers.SerializedError; | ||
interface LoggerOptions { | ||
interface LoggerOptions<CustomLevels extends string = never> { | ||
transport?: TransportSingleOptions | TransportMultiOptions | TransportPipelineOptions | ||
@@ -367,3 +367,3 @@ /** | ||
*/ | ||
customLevels?: { [key: string]: number }; | ||
customLevels?: { [level in CustomLevels]: number }; | ||
/** | ||
@@ -653,6 +653,6 @@ * Use this option to only use defined `customLevels` and omit Pino's levels. | ||
interface ChildLoggerOptions { | ||
interface ChildLoggerOptions<CustomLevels extends string = never> { | ||
level?: LevelOrString; | ||
serializers?: { [key: string]: SerializerFn }; | ||
customLevels?: { [key: string]: number }; | ||
customLevels?: { [level in CustomLevels]: number }; | ||
formatters?: { | ||
@@ -807,3 +807,3 @@ level?: (label: string, number: number) => object; | ||
*/ | ||
declare function pino<Options extends LoggerOptions | DestinationStream>(optionsOrStream?: Options): Logger<Options>; | ||
declare function pino<CustomLevels extends string = never>(optionsOrStream?: LoggerOptions<CustomLevels> | DestinationStream): Logger<CustomLevels>; | ||
@@ -816,3 +816,3 @@ /** | ||
*/ | ||
declare function pino<Options extends LoggerOptions>(options: Options, stream: DestinationStream): Logger<Options>; | ||
declare function pino<CustomLevels extends string>(options: LoggerOptions<CustomLevels>, stream: DestinationStream): Logger<CustomLevels>; | ||
@@ -838,5 +838,5 @@ | ||
export type LevelWithSilentOrString = pino.LevelWithSilentOrString; | ||
export type LevelChangeEventListener = pino.LevelChangeEventListener; | ||
export type LevelChangeEventListener<CustomLevels extends string> = pino.LevelChangeEventListener<CustomLevels>; | ||
export type LogDescriptor = pino.LogDescriptor; | ||
export type Logger<Options = LoggerOptions> = pino.Logger<Options>; | ||
export type Logger<CustomLevels extends string = never> = pino.Logger<CustomLevels>; | ||
export type SerializedError = pino.SerializedError; | ||
@@ -850,3 +850,3 @@ export type SerializerFn = pino.SerializerFn; | ||
export interface BaseLogger extends pino.BaseLogger {} | ||
export interface ChildLoggerOptions extends pino.ChildLoggerOptions {} | ||
export interface ChildLoggerOptions<CustomLevels extends string = never> extends pino.ChildLoggerOptions<CustomLevels> {} | ||
export interface DestinationStream extends pino.DestinationStream {} | ||
@@ -856,3 +856,3 @@ export interface LevelMapping extends pino.LevelMapping {} | ||
export interface LogFn extends pino.LogFn {} | ||
export interface LoggerOptions extends pino.LoggerOptions {} | ||
export interface LoggerOptions<CustomLevels extends string = never> extends pino.LoggerOptions<CustomLevels> {} | ||
export interface MultiStreamOptions extends pino.MultiStreamOptions {} | ||
@@ -859,0 +859,0 @@ export interface MultiStreamRes<TLevel = Level> extends pino.MultiStreamRes<TLevel> {} |
@@ -111,3 +111,2 @@ import P, { pino } from "../../"; | ||
pino({ base: null }); | ||
// @ts-expect-error | ||
if ("pino" in log) console.log(`pino version: ${log.pino}`); | ||
@@ -326,2 +325,5 @@ | ||
const ccclog3 = clog3.child({}) | ||
expectError(ccclog3.nonLevel('')) | ||
const withChildCallback = pino({ | ||
@@ -336,3 +338,3 @@ onChild: (child: Logger) => {} | ||
const customLevels = { foo: 99 }; | ||
const customLevels = { foo: 99, bar: 42 } | ||
@@ -349,1 +351,60 @@ const customLevelLogger = pino({ customLevels }); | ||
fn(customLevelChildLogger); // missing foo typing | ||
// unknown option | ||
expectError( | ||
pino({ | ||
hello: 'world' | ||
}) | ||
); | ||
// unknown option | ||
expectError( | ||
pino({ | ||
hello: 'world', | ||
customLevels: { | ||
'log': 30 | ||
} | ||
}) | ||
); | ||
function dangerous () { | ||
throw Error('foo') | ||
} | ||
try { | ||
dangerous() | ||
} catch (err) { | ||
log.error(err) | ||
} | ||
try { | ||
dangerous() | ||
} catch (err) { | ||
log.error({ err }) | ||
} | ||
const bLogger = pino({ | ||
customLevels: { | ||
log: 5, | ||
}, | ||
level: 'log', | ||
transport: { | ||
target: 'pino-pretty', | ||
options: { | ||
colorize: true, | ||
}, | ||
}, | ||
}); | ||
expectType<Logger<'log'>>(pino({ | ||
customLevels: { | ||
log: 5, | ||
}, | ||
level: 'log', | ||
transport: { | ||
target: 'pino-pretty', | ||
options: { | ||
colorize: true, | ||
}, | ||
}, | ||
})) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
688585
13506