UNPKG

@yiero/gmlib

Version:

GM Lib for Tampermonkey/ScriptCat

51 lines (50 loc) 1.71 kB
/** * 下载请求配置类型 * * 基于 GM_download API 的配置参数,提供进度监控和错误处理回调 */ export type DownloadRequest = Omit<GMTypes.DownloadDetails<string | Blob | File>, 'url' | 'name' | 'onerror' | 'onprogress'> & { /** 下载失败时的回调函数 */ onerror?: (error: GMTypes.DownloadError) => void; /** 下载进度变化的回调函数 */ onprogress?: (response: { done: number; lengthComputable: boolean; loaded: number; position?: number; total: number; totalSize: number; }, abortHandle: GMTypes.AbortHandle<boolean>) => void; }; /** * 下载 URL 指向的文件 * * 封装 GM_download API,提供 Promise 化的文件下载能力, * 支持进度监控、错误处理和超时控制。 * * @param url 文件下载地址 * @param filename 保存的文件名 * @param details 下载配置项(可选) * @returns Promise<boolean> 下载成功时解析为 true * * @warn 需要授权函数 `GM_download` * * @example * ```ts * // 基本下载 * await gmDownload('https://example.com/image.png', 'image.png'); * * // 带进度监控的下载 * await gmDownload('https://example.com/file.zip', 'file.zip', { * onprogress: (progress, abort) => { * console.log(`进度: ${progress.loaded}/${progress.total}`); * } * }); * ``` */ declare const gmDownload: { (url: string, filename: string, details?: DownloadRequest): Promise<boolean>; blob(blob: Blob | File, filename: string, details?: DownloadRequest): Promise<boolean>; text(content: string, filename: string, mimeType?: string, details?: DownloadRequest): Promise<boolean>; }; export { gmDownload };