node-console-progress-bar-tqdm
Version:
Progress bar in console for Node.js in the style of TQDM Python library
32 lines (31 loc) • 1.25 kB
TypeScript
/// <reference types="node" />
export type TqdmInput = Iterable<unknown> | Iterator<unknown> | AsyncIterable<unknown> | AsyncIterator<unknown> | number;
export type TqdmItem<TInput> = TInput extends Iterable<infer Item> ? Item : TInput extends Iterator<infer Item> ? Item : TInput extends AsyncIterable<infer Item> ? Item : TInput extends AsyncIterator<infer Item> ? Item : TInput extends number ? number : never;
export type TqdmUnitTable = Record<Intl.LDMLPluralRule, string>;
export type TqdmUnitOption = string | [string, string] | TqdmUnitTable;
export type TqdmOptions = {
description?: string;
maxColWidth?: number;
progressBraces?: [string, string];
progressSymbol?: string;
progressColor?: string;
initial?: number;
total?: number;
step?: number;
unit?: TqdmUnitOption;
unitScale?: boolean;
stream?: NodeJS.WritableStream;
minInterval?: number;
forceTerminal?: boolean;
};
export interface ITqdmProgress {
update(by?: number): void;
render(force?: boolean): void;
close(): void;
}
export interface ITqdmSyncIteratorContainer<TItem> {
nextSync(): IteratorResult<TItem>;
}
export interface ITqdmAsyncIteratorContainer<TItem> {
nextAsync(): Promise<IteratorResult<TItem>>;
}