Provider.d.ts 1.7 KB

1234567891011121314151617181920212223242526
  1. /// <reference types="node" />
  2. import { CancellationToken, HttpExecutor, UpdateFileInfo, UpdateInfo } from "builder-util-runtime";
  3. import { OutgoingHttpHeaders, RequestOptions } from "http";
  4. import { URL } from "url";
  5. import { ResolvedUpdateFileInfo } from "../main";
  6. export declare abstract class Provider<T extends UpdateInfo> {
  7. protected readonly executor: HttpExecutor<any>;
  8. readonly useMultipleRangeRequest: boolean;
  9. private requestHeaders;
  10. protected constructor(executor: HttpExecutor<any>, useMultipleRangeRequest?: boolean);
  11. readonly fileExtraDownloadHeaders: OutgoingHttpHeaders | null;
  12. setRequestHeaders(value: OutgoingHttpHeaders | null): void;
  13. abstract getLatestVersion(): Promise<T>;
  14. abstract resolveFiles(updateInfo: UpdateInfo): Array<ResolvedUpdateFileInfo>;
  15. /**
  16. * Method to perform API request only to resolve update info, but not to download update.
  17. */
  18. protected httpRequest(url: URL, headers?: OutgoingHttpHeaders | null, cancellationToken?: CancellationToken): Promise<string | null>;
  19. protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions;
  20. }
  21. export declare function configureRequestOptionsFromUrl(url: URL, result: RequestOptions): RequestOptions;
  22. export declare function findFile(files: Array<ResolvedUpdateFileInfo>, extension: string, not?: Array<string>): ResolvedUpdateFileInfo | null | undefined;
  23. export declare function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo;
  24. export declare function getFileList(updateInfo: UpdateInfo): Array<UpdateFileInfo>;
  25. export declare function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer?: (p: string) => string): Array<ResolvedUpdateFileInfo>;