UNPKG

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
/// <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; }