UNPKG

ipull

Version:

The only file downloader you'll ever need. For node.js and the browser, CLI and library for fast and reliable file downloads.

30 lines (29 loc) 1.13 kB
import { SaveProgressInfo } from "../../types.js"; export type ProgramSlice = { start: number; end: number; }; export type DownloadSlice = (startChunk: number, endChunk: number) => Promise<void>; export default abstract class BaseDownloadProgram { protected savedProgress: SaveProgressInfo; protected readonly _downloadSlice: DownloadSlice; protected _aborted: boolean; protected _parallelStreams: number; protected _reload?: () => void; protected _activeDownloads: Promise<any>[]; protected constructor(_savedProgress: SaveProgressInfo, _downloadSlice: DownloadSlice); get parallelStreams(): number; set parallelStreams(value: number); incParallelStreams(): void; decParallelStreams(): void; waitForStreamToEnd(): Promise<any>; download(): Promise<void>; private _waitForStreamEndWithReload; private _createDownload; /** * Create all the first slices at one - make sure they will not overlap to reduce stream aborts at later stages */ private _createFirstSlices; protected abstract _createOneSlice(): ProgramSlice | null; abort(): void; }