UNPKG

2.71 kBTypeScriptView Raw
1import { AnyObject, CommonLogger } from '@naturalcycles/js-lib';
2import { TransformOptions, TransformTyped } from '../stream.model';
3export interface TransformLogProgressOptions<IN = any> extends TransformOptions {
4 /**
5 * Progress metric
6 *
7 * @default `progress`
8 */
9 metric?: string;
10 /**
11 * Include `heapUsed` in log.
12 *
13 * @default false
14 */
15 heapUsed?: boolean;
16 /**
17 * Include `heapTotal` in log.
18 *
19 * @default false
20 */
21 heapTotal?: boolean;
22 /**
23 * Include `rss` in log.
24 *
25 * @default true
26 */
27 rss?: boolean;
28 /**
29 * Incude Peak RSS in log.
30 *
31 * @default true
32 */
33 peakRSS?: boolean;
34 /**
35 * Include `external` in log.
36 *
37 * @default false
38 */
39 external?: boolean;
40 /**
41 * Include `arrayBuffers` in log.
42 *
43 * @default false
44 */
45 arrayBuffers?: boolean;
46 /**
47 * Log (rss - heapTotal)
48 * For convenience of debugging "out-of-heap" memory size.
49 *
50 * @default false
51 */
52 rssMinusHeap?: boolean;
53 /**
54 * Log "rows per second"
55 *
56 * @default true
57 */
58 logRPS?: boolean;
59 /**
60 * Set to false to disable logging progress
61 *
62 * @default true
63 */
64 logProgress?: boolean;
65 /**
66 * Log progress event Nth record that is _processed_ (went through mapper).
67 * Set to 0 to disable logging.
68 *
69 * @default 1000
70 */
71 logEvery?: number;
72 logger?: CommonLogger;
73 /**
74 * Function to return extra properties to the "progress object".
75 *
76 * chunk is undefined for "final" stats, otherwise is defined.
77 */
78 extra?: (chunk: IN | undefined, index: number) => AnyObject;
79 /**
80 * If specified - will multiply the counter by this number.
81 * Useful e.g when using `transformBuffer({ batchSize: 500 })`, so
82 * it'll accurately represent the number of processed entries (not batches).
83 *
84 * Defaults to 1.
85 */
86 batchSize?: number;
87 /**
88 * Experimental logging of item (shunk) sizes, when json-stringified.
89 *
90 * Defaults to false.
91 *
92 * @experimental
93 */
94 logSizes?: boolean;
95 /**
96 * How many last item sizes to keep in a buffer, to calculate stats (p50, p90, avg, etc).
97 * Defaults to 100_000.
98 * Cannot be Infinity.
99 */
100 logSizesBuffer?: number;
101 /**
102 * Works in addition to `logSizes`. Adds "zipped sizes".
103 *
104 * @experimental
105 */
106 logZippedSizes?: boolean;
107}
108/**
109 * Pass-through transform that optionally logs progress.
110 */
111export declare function transformLogProgress<IN = any>(opt?: TransformLogProgressOptions): TransformTyped<IN, IN>;