node-console-progress-bar-tqdm
Version:
Progress bar in console for Node.js in the style of TQDM Python library
42 lines (41 loc) • 2.39 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import tty from 'node:tty';
import { ITqdmAsyncIteratorContainer, ITqdmSyncIteratorContainer, TqdmItem } from './base-types';
export type TqdmInnerIterator<TItem> = Iterator<TItem> | AsyncIterator<TItem>;
export type TqdmIteratorResultSync<TInput> = TInput extends Iterable<unknown> ? IteratorResult<TqdmItem<TInput>> : TInput extends Iterator<unknown> ? IteratorResult<TqdmItem<TInput>> : TInput extends number ? IteratorResult<TqdmItem<TInput>> : never;
export type TqdmIteratorResultAsync<TInput> = TInput extends AsyncIterable<unknown> ? Promise<IteratorResult<TqdmItem<TInput>>> : TInput extends AsyncIterator<unknown> ? Promise<IteratorResult<TqdmItem<TInput>>> : never;
export declare class TqdmNumericIterator implements Iterator<number> {
private readonly num;
private cnt;
constructor(num: number);
next(): IteratorResult<number, undefined>;
}
export declare class TqdmSyncResultIterator<TItem> implements Iterator<TItem> {
private readonly container;
constructor(container: ITqdmSyncIteratorContainer<TItem>);
next(): IteratorResult<TItem>;
}
export type TqdmSyncResultIteratorReturn<TInput> = TInput extends Iterable<unknown> ? TqdmSyncResultIterator<TqdmItem<TInput>> : TInput extends Iterator<unknown> ? TqdmSyncResultIterator<TqdmItem<TInput>> : TInput extends number ? TqdmSyncResultIterator<TqdmItem<TInput>> : never;
export declare class TqdmAsyncResultIterator<TItem> implements AsyncIterator<TItem> {
private readonly container;
constructor(container: ITqdmAsyncIteratorContainer<TItem>);
next(): Promise<IteratorResult<TItem>>;
}
export type TqdmAsyncResultIteratorReturn<TInput> = TInput extends AsyncIterable<unknown> ? TqdmAsyncResultIterator<TqdmItem<TInput>> : TInput extends AsyncIterator<unknown> ? TqdmAsyncResultIterator<TqdmItem<TInput>> : never;
export declare class TqdmWriteStream {
private readonly stream;
readonly resetLine: () => void;
private readonly streamIsTty;
constructor(stream: NodeJS.WritableStream | tty.WriteStream, forceTerminal?: boolean);
get isTty(): boolean;
get columns(): number;
write(chunk: string): void;
finalize(): void;
clearScreen(): void;
private onTerminalResize;
private getStreamAsTty;
private ttyResetLine;
private forceTerminalResetLine;
private generalResetLine;
}