fluxforge
Version:
Enterprise-grade file chunking & concurrent processing library with Web Workers, automatic retry, real-time progress tracking, and MD5 integrity validation for modern browsers. Perfect for large file uploads, streaming, and data processing pipelines.
26 lines (25 loc) • 931 B
TypeScript
export interface Chunk {
blob: Blob;
hash: string;
index: number;
start: number;
end: number;
}
export interface Options {
chunkSize?: number;
}
export interface ProcessOptions {
concurrency?: number;
onProgress?: (completed: number, total: number) => void;
}
export type ChunkProcessor = (chunk: Chunk, signal: AbortSignal) => void | Promise<void>;
export interface ProcessController {
pause: () => void;
resume: () => void;
cancel: () => void;
promise: Promise<void>;
}
export declare function chunkFile(file: File, options?: Options): Promise<Chunk>[];
export declare function processChunks(chunkPromises: Promise<Chunk>[], processor: ChunkProcessor, options?: ProcessOptions): ProcessController;
export declare function calculateFileHash(chunkPromises: Promise<Chunk>[]): Promise<string>;
export declare function collectChunks(chunkPromises: Promise<Chunk>[]): Promise<Chunk[]>;