-
Notifications
You must be signed in to change notification settings - Fork 145
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
181 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
// Type definitions for pino-pretty 4.7 | ||
// Project: https://github.com/pinojs/pino-pretty#readme | ||
// Definitions by: Adam Vigneaux <https://github.com/AdamVig> | ||
// Minimum TypeScript Version: 3.0 | ||
|
||
type LogDescriptor = Record<string, unknown>; | ||
|
||
declare function PinoPretty(options: PinoPretty.PrettyOptions): PinoPretty.Prettifier; | ||
|
||
declare namespace PinoPretty { | ||
type Prettifier = (inputData: string | object) => string; | ||
type MessageFormatFunc = (log: LogDescriptor, messageKey: string, levelLabel: string) => string; | ||
|
||
interface PrettyOptions { | ||
/** | ||
* Hide objects from output (but not error object). | ||
* @default false | ||
*/ | ||
hideObject?: boolean; | ||
/** | ||
* Translate the epoch time value into a human readable date and time string. This flag also can set the format | ||
* string to apply when translating the date to human readable format. For a list of available pattern letters | ||
* see the {@link https://www.npmjs.com/package/dateformat|dateformat documentation}. | ||
* - The default format is `yyyy-mm-dd HH:MM:ss.l o` in UTC. | ||
* - Requires a `SYS:` prefix to translate time to the local system's timezone. Use the shortcut `SYS:standard` | ||
* to translate time to `yyyy-mm-dd HH:MM:ss.l o` in system timezone. | ||
* @default false | ||
*/ | ||
translateTime?: boolean | string; | ||
/** | ||
* If set to true, it will print the name of the log level as the first field in the log line. | ||
* @default false | ||
*/ | ||
levelFirst?: boolean; | ||
/** | ||
* Define the key that contains the level of the log. | ||
* @default "level" | ||
*/ | ||
levelKey?: string; | ||
/** | ||
* Output the log level using the specified label. | ||
* @default "levelLabel" | ||
*/ | ||
levelLabel?: string; | ||
/** | ||
* The key in the JSON object to use as the highlighted message. | ||
* @default "msg" | ||
*/ | ||
messageKey?: string; | ||
/** | ||
* Print each log message on a single line (errors will still be multi-line). | ||
* @default false | ||
*/ | ||
singleLine?: boolean; | ||
/** | ||
* The key in the JSON object to use for timestamp display. | ||
* @default "time" | ||
*/ | ||
timestampKey?: string; | ||
/** | ||
* Format output of message, e.g. {level} - {pid} will output message: INFO - 1123 | ||
* @default false | ||
* | ||
* @example | ||
* ```typescript | ||
* { | ||
* messageFormat: (log, messageKey) => { | ||
* const message = log[messageKey]; | ||
* if (log.requestId) return `[${log.requestId}] ${message}`; | ||
* return message; | ||
* } | ||
* } | ||
* ``` | ||
*/ | ||
messageFormat?: false | string | MessageFormatFunc; | ||
/** | ||
* If set to true, will add color information to the formatted output message. | ||
* @default false | ||
*/ | ||
colorize?: boolean; | ||
/** | ||
* Appends carriage return and line feed, instead of just a line feed, to the formatted log line. | ||
* @default false | ||
*/ | ||
crlf?: boolean; | ||
/** | ||
* Define the log keys that are associated with error like objects. | ||
* @default ["err", "error"] | ||
*/ | ||
errorLikeObjectKeys?: string[]; | ||
/** | ||
* When formatting an error object, display this list of properties. | ||
* The list should be a comma separated list of properties. | ||
* @default "" | ||
*/ | ||
errorProps?: string; | ||
/** | ||
* Specify a search pattern according to {@link http://jmespath.org|jmespath} | ||
*/ | ||
search?: string; | ||
/** | ||
* Ignore one or several keys. | ||
* @example "time,hostname" | ||
*/ | ||
ignore?: string; | ||
} | ||
} | ||
|
||
export default PinoPretty; | ||
export { PinoPretty } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
import prettyFactory from "../../"; | ||
import {expectType} from "tsd"; | ||
|
||
import PinoPretty, { PinoPretty as PinoPrettyNamed } from "../../"; | ||
import PinoPrettyDefault from "../../"; | ||
import * as PinoPrettyStar from "../../"; | ||
import PinoPrettyCjsImport = require ("../../"); | ||
import Prettifier = PinoPretty.Prettifier; | ||
const PinoPrettyCjs = require("../../"); | ||
|
||
const options: PinoPretty.PrettyOptions = { | ||
colorize: true, | ||
crlf: false, | ||
errorLikeObjectKeys: ["err", "error"], | ||
errorProps: "", | ||
hideObject: true, | ||
levelKey: "level", | ||
levelLabel: "foo", | ||
messageFormat: false, | ||
ignore: "", | ||
levelFirst: false, | ||
messageKey: "msg", | ||
timestampKey: "timestamp", | ||
translateTime: "UTC:h:MM:ss TT Z", | ||
search: "foo == `bar`", | ||
singleLine: false, | ||
}; | ||
|
||
const pretty = prettyFactory(options); | ||
expectType<Prettifier>(pretty) | ||
|
||
expectType<Prettifier>(PinoPrettyNamed(options)); | ||
expectType<Prettifier>(PinoPrettyDefault(options)); | ||
expectType<Prettifier>(PinoPrettyStar.PinoPretty(options)); | ||
expectType<Prettifier>(PinoPrettyStar.default(options)); | ||
expectType<Prettifier>(PinoPrettyCjsImport.PinoPretty(options)); | ||
expectType<Prettifier>(PinoPrettyCjsImport.default(options)); | ||
expectType<any>(PinoPrettyCjs(options)); | ||
|
||
expectType<string>(pretty({ foo: "bar" })); | ||
expectType<string>(pretty('dummy')); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"compilerOptions": { | ||
"target": "es6", | ||
"lib": [ "es2015" ], | ||
"module": "commonjs", | ||
"noEmit": true, | ||
"strict": true | ||
}, | ||
"include": [ | ||
"./test/types/pino-pretty.test.d.ts", | ||
"./index.d.ts" | ||
] | ||
} |