@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
112 lines (111 loc) • 2.71 kB
TypeScript
import { AnyObject, CommonLogger } from '@naturalcycles/js-lib';
import { TransformOptions, TransformTyped } from '../stream.model';
export interface TransformLogProgressOptions<IN = any> extends TransformOptions {
/**
* Progress metric
*
* @default `progress`
*/
metric?: string;
/**
* Include `heapUsed` in log.
*
* @default false
*/
heapUsed?: boolean;
/**
* Include `heapTotal` in log.
*
* @default false
*/
heapTotal?: boolean;
/**
* Include `rss` in log.
*
* @default true
*/
rss?: boolean;
/**
* Incude Peak RSS in log.
*
* @default true
*/
peakRSS?: boolean;
/**
* Include `external` in log.
*
* @default false
*/
external?: boolean;
/**
* Include `arrayBuffers` in log.
*
* @default false
*/
arrayBuffers?: boolean;
/**
* Log (rss - heapTotal)
* For convenience of debugging "out-of-heap" memory size.
*
* @default false
*/
rssMinusHeap?: boolean;
/**
* Log "rows per second"
*
* @default true
*/
logRPS?: boolean;
/**
* Set to false to disable logging progress
*
* @default true
*/
logProgress?: boolean;
/**
* Log progress event Nth record that is _processed_ (went through mapper).
* Set to 0 to disable logging.
*
* @default 1000
*/
logEvery?: number;
logger?: CommonLogger;
/**
* Function to return extra properties to the "progress object".
*
* chunk is undefined for "final" stats, otherwise is defined.
*/
extra?: (chunk: IN | undefined, index: number) => AnyObject;
/**
* If specified - will multiply the counter by this number.
* Useful e.g when using `transformBuffer({ batchSize: 500 })`, so
* it'll accurately represent the number of processed entries (not batches).
*
* Defaults to 1.
*/
batchSize?: number;
/**
* Experimental logging of item (shunk) sizes, when json-stringified.
*
* Defaults to false.
*
* @experimental
*/
logSizes?: boolean;
/**
* How many last item sizes to keep in a buffer, to calculate stats (p50, p90, avg, etc).
* Defaults to 100_000.
* Cannot be Infinity.
*/
logSizesBuffer?: number;
/**
* Works in addition to `logSizes`. Adds "zipped sizes".
*
* @experimental
*/
logZippedSizes?: boolean;
}
/**
* Pass-through transform that optionally logs progress.
*/
export declare function transformLogProgress<IN = any>(opt?: TransformLogProgressOptions): TransformTyped<IN, IN>;