You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					90 lines
				
				2.4 KiB
			
		
		
			
		
	
	
					90 lines
				
				2.4 KiB
			| 
											3 years ago
										 | // Type definitions for pino-abstract-transport 0.4.0
 | ||
|  | // Project: https://github.com/pinojs/pino-abstract-transport#readme
 | ||
|  | // Definitions by: Diyar Oktay <https://github.com/windupbird144>
 | ||
|  | 
 | ||
|  | /// <reference types="node" />
 | ||
|  | 
 | ||
|  | import { Transform } from "stream"; | ||
|  | 
 | ||
|  | type BuildOptions = { | ||
|  |   /** | ||
|  |    * `parseLine(line)` a function that is used to parse line received from pino. | ||
|  |    * @default JSON.parse | ||
|  |    */ | ||
|  |   parseLine?: (line: string) => unknown; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * `parse` an option to change to data format passed to build function. | ||
|  |    * @default undefined | ||
|  |    * | ||
|  |    */ | ||
|  |   parse?: "lines"; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * `close(err, cb)` a function that is called to shutdown the transport. | ||
|  |    * It's called both on error and non-error shutdowns. It can also return | ||
|  |    * a promise. In this case discard the the cb argument. | ||
|  |    * | ||
|  |    * @example | ||
|  |    * ```typescript
 | ||
|  |    * { | ||
|  |    *   close: function (err, cb) { | ||
|  |    *     process.nextTick(cb, err) | ||
|  |    *   } | ||
|  |    * } | ||
|  |    * ```
 | ||
|  |    * */ | ||
|  |   close?: (err: Error, cb: Function) => void | Promise<void>; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * `metadata` If set to false, do not add metadata properties to the returned stream | ||
|  |    */ | ||
|  |   metadata?: false; | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Pass these options to wrap the split2 stream and | ||
|  |  * the returned stream into a Duplex | ||
|  |  */ | ||
|  | type EnablePipelining = BuildOptions & { | ||
|  |   enablePipelining: true; | ||
|  | }; | ||
|  | 
 | ||
|  | interface OnUnknown { | ||
|  |   /** | ||
|  |    * `unknown` is the event emitted where an unparsable line is found | ||
|  |    * | ||
|  |    * @param event 'unknown' | ||
|  |    * @param line the unparsable line | ||
|  |    * @param error the error that was thrown when parsing the line | ||
|  |    */ | ||
|  |   on(event: "unknown", listener: (line: string, error: unknown) => void): void; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Create a split2 instance and returns it. This same instance is also passed | ||
|  |  * to the given function, which is called synchronously. | ||
|  |  * | ||
|  |  * @returns {Transform} the split2 instance | ||
|  |  */ | ||
|  | declare function build( | ||
|  |   fn: (transform: Transform & OnUnknown) => void | Promise<void>, | ||
|  |   opts?: BuildOptions | ||
|  | ): Transform & OnUnknown; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a split2 instance and passes it to the given function, which is called | ||
|  |  * synchronously. Then wraps the split2 instance and the returned stream into a | ||
|  |  * Duplex, so they can be concatenated into multiple transports. | ||
|  |  * | ||
|  |  * @returns {Transform} the wrapped split2 instance | ||
|  |  */ | ||
|  | declare function build( | ||
|  |   fn: (transform: Transform & OnUnknown) => Transform & OnUnknown, | ||
|  |   opts: EnablePipelining | ||
|  | ): Transform; | ||
|  | 
 | ||
|  | export { OnUnknown }; | ||
|  | 
 | ||
|  | export default build; |