iterparse
Version:
Delightful data parsing
63 lines • 1.93 kB
TypeScript
import { AnyIterable } from "./types";
import { AsyncIterable } from "ix";
export interface GroupedItems<T> {
readonly key: string;
readonly items: ReadonlyArray<T>;
}
declare class GroupingProgressDisplay {
private progress;
constructor(progress: GroupingProgress);
toString(): string;
toJSON(): {
state: GroupingState;
groupingBytesPerSecond: number;
readingBytesPerSecond: number;
memory: number;
groupingStartTime: number;
groupingStopTime: number;
readingStartTime: number;
readingStopTime: number;
groupedItems: number;
groupedBytes: number;
groupedGroups: number;
readedItems: number;
readedBytes: number;
readedGroups: number;
};
}
declare type GroupingState = "READING" | "GROUPING" | "IDLE";
declare class GroupingProgress {
groupedBytes: number;
groupedItems: number;
groupedGroups: number;
readedBytes: number;
readedGroups: number;
readedItems: number;
state: GroupingState;
parsingStartTime: number;
parsingStopTime: number;
readingStartTime: number;
readingStopTime: number;
start(action: GroupingState): void;
stop(action: GroupingState): void;
constructor();
addChunk(chunk: number): void;
addGroup(group: number): void;
addItem(count?: number): void;
readChunk(chunk: number): void;
readGroup(group: number): void;
readItem(count?: number): void;
set(data: {
currentSize?: number;
items?: number;
}): void;
}
export interface FileGroupByOptions<T> {
source: AnyIterable<T>;
groupingFn: (data: T) => number | string;
progress?: (progress: GroupingProgressDisplay) => void;
progressFrequency?: number;
}
export declare function fileGroupBy<T>(args: FileGroupByOptions<T>): AsyncIterable<GroupedItems<T>>;
export {};
//# sourceMappingURL=fileGroupBy.d.ts.map