naive-upload
Version:
<p align="left"> <a href="https://www.npmjs.org/package/naive-upload"> <img src="https://img.shields.io/npm/v/naive-upload.svg"> </a> <a href="https://bundlephobia.com/package/naive-upload@latest"> <img src="https://img.shields.io/bundl
137 lines (136 loc) • 2.89 kB
TypeScript
import RawFile from "../Model/RawFile";
import { IProgress } from "../Model/IProgress";
/**
* 哈希值计算帮助类
*
* @author LCTR
* @date 2022-09-22
*/
export default class HashHelper {
constructor(enableWorker: boolean, debug: boolean);
/**
* 是否启用Worker
* 默认启用(如果浏览器支持的话)
*/
private readonly enableWorker;
/**
* 浏览器是否支持Web Worker
*/
private readonly workerSupported;
/**
* 调试模式
*/
private readonly debug;
/**
* Spark计算单元
*/
private sparkUnits;
/**
* 子线程计算单元
*/
private workerUnits;
/**
* 分片文件处理队列
* */
private chunkHandlerQueue;
/**
* 分片文件处理方法
*/
private chunkHandler;
/**
* 已完成
*/
private finished;
/**
* 已取消
*/
private canceled;
/**
* 已暂停
*/
private paused;
/**
* 等待继续的回调
*/
private waitToContinue;
/**
* 文件数据读取器
*/
private fileReaders;
/**
* 直接校验分片文件
*
* @param file
* @param handlerIndex 主索引
* @param onProgress
* @return md5 返回的是主索引对应的计算单元的计算结果
*/
private checkFile;
/**
* 追加数据
*
* @param blob 数据
* @param handlerIndex
*/
private appendData;
/**
* 获取当前计算的结果
*
* @param handlerIndex
*/
private getResult;
/**
* 全部重置
*/
private reset;
/**
* 重置
*
* @param handlerIndex
*/
private resetByIndex;
/**
* 关闭
*
* @param handlerIndex 索引
*/
private closeByIndex;
/**
* 发送数据给WebWorker
*
* @param handlerIndex
* @param data
*/
private workerPostMessage;
/**
* 获取实例
*
* @param concurrent 并发数量
* @param enableWorker 是否启用Worker
* @param debug 调试模式
*/
static getInstance(concurrent?: number, enableWorker?: boolean, debug?: boolean): Promise<HashHelper>;
/**
* 处理文件
*
* @param file 文件
* @param onProgress 监听进度
*/
handler(this: HashHelper, file: RawFile, onProgress: (progress: IProgress) => void): Promise<void>;
/**
* 取消
*/
cancel(this: HashHelper): Promise<void>;
/**
* 暂停
*/
pause(this: HashHelper): Promise<void>;
/**
* 恢复
*/
continue(this: HashHelper): Promise<void>;
/**
* 关闭
*/
close(this: HashHelper): Promise<void>;
}