UNPKG

fluxforge

Version:

基于 Web Worker 的文件分片库,提供并发处理、可暂停/取消任务控制、自动重试与 MD5 校验。

51 lines (50 loc) 1.21 kB
export interface Chunk { blob: Blob; hash: string; index: number; start: number; end: number; } export interface ChunkOptions { chunkSize?: number; workerCount?: number; } export interface ProcessOptions { concurrency?: number; maxRetries?: number; retryBaseDelayMs?: number; retryMaxDelayMs?: 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; readonly promise: Promise<void>; } export declare class CancellationError extends Error { constructor(message?: string); } export declare class RetryExhaustedError extends Error { readonly cause: unknown; readonly attempts: number; constructor(attempts: number, cause: unknown); } export interface WorkerRequest { start: number; end: number; chunkSize: number; file: File; } export type WorkerResponse = { type: 'chunk'; index: number; start: number; end: number; hash: string; } | { type: 'error'; index: number; message: string; };