DifferentialDownloader.d.ts 1.4 KB

123456789101112131415161718192021222324252627282930
  1. /// <reference types="node" />
  2. import { BlockMapDataHolder, HttpExecutor } from "builder-util-runtime";
  3. import { BlockMap } from "builder-util-runtime/out/blockMapApi";
  4. import { OutgoingHttpHeaders, RequestOptions } from "http";
  5. import { Logger } from "../main";
  6. export interface DifferentialDownloaderOptions {
  7. readonly oldFile: string;
  8. readonly newUrl: string;
  9. readonly logger: Logger;
  10. readonly newFile: string;
  11. readonly requestHeaders: OutgoingHttpHeaders | null;
  12. readonly useMultipleRangeRequest?: boolean;
  13. }
  14. export declare abstract class DifferentialDownloader {
  15. protected readonly blockAwareFileInfo: BlockMapDataHolder;
  16. readonly httpExecutor: HttpExecutor<any>;
  17. readonly options: DifferentialDownloaderOptions;
  18. private readonly baseRequestOptions;
  19. fileMetadataBuffer: Buffer | null;
  20. private readonly logger;
  21. constructor(blockAwareFileInfo: BlockMapDataHolder, httpExecutor: HttpExecutor<any>, options: DifferentialDownloaderOptions);
  22. createRequestOptions(method?: "head" | "get", newUrl?: string | null): RequestOptions;
  23. protected doDownload(oldBlockMap: BlockMap, newBlockMap: BlockMap): Promise<any>;
  24. private downloadFile;
  25. private doDownloadFile;
  26. protected readRemoteBytes(start: number, endInclusive: number): Promise<Buffer>;
  27. private request;
  28. }
  29. export declare function readBlockMap(data: Buffer): Promise<BlockMap>;