DifferentialDownloader.d.ts 1.4 KB

1234567891011121314151617181920212223242526272829
  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(tasks);
  25. protected readRemoteBytes(start: number, endInclusive: number): Promise<Buffer>;
  26. private request(requestOptions, dataHandler);
  27. }
  28. export declare function readBlockMap(data: Buffer): Promise<BlockMap>;