1 |
|
2 |
|
3 | import { CancellationToken, UpdateFileInfo, UpdateInfo } from "builder-util-runtime";
|
4 | import { OutgoingHttpHeaders, RequestOptions } from "http";
|
5 | import { URL } from "url";
|
6 | import { ElectronHttpExecutor } from "../electronHttpExecutor";
|
7 | import { ResolvedUpdateFileInfo } from "../main";
|
8 | export type ProviderPlatform = "darwin" | "linux" | "win32";
|
9 | export interface ProviderRuntimeOptions {
|
10 | isUseMultipleRangeRequest: boolean;
|
11 | platform: ProviderPlatform;
|
12 | executor: ElectronHttpExecutor;
|
13 | }
|
14 | export declare abstract class Provider<T extends UpdateInfo> {
|
15 | private readonly runtimeOptions;
|
16 | private requestHeaders;
|
17 | protected readonly executor: ElectronHttpExecutor;
|
18 | protected constructor(runtimeOptions: ProviderRuntimeOptions);
|
19 | get isUseMultipleRangeRequest(): boolean;
|
20 | private getChannelFilePrefix;
|
21 | protected getDefaultChannelName(): string;
|
22 | protected getCustomChannelName(channel: string): string;
|
23 | get fileExtraDownloadHeaders(): OutgoingHttpHeaders | null;
|
24 | setRequestHeaders(value: OutgoingHttpHeaders | null): void;
|
25 | abstract getLatestVersion(): Promise<T>;
|
26 | abstract resolveFiles(updateInfo: T): Array<ResolvedUpdateFileInfo>;
|
27 | /**
|
28 | * Method to perform API request only to resolve update info, but not to download update.
|
29 | */
|
30 | protected httpRequest(url: URL, headers?: OutgoingHttpHeaders | null, cancellationToken?: CancellationToken): Promise<string | null>;
|
31 | protected createRequestOptions(url: URL, headers?: OutgoingHttpHeaders | null): RequestOptions;
|
32 | }
|
33 | export declare function findFile(files: Array<ResolvedUpdateFileInfo>, extension: string, not?: Array<string>): ResolvedUpdateFileInfo | null | undefined;
|
34 | export declare function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo;
|
35 | export declare function getFileList(updateInfo: UpdateInfo): Array<UpdateFileInfo>;
|
36 | export declare function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer?: (p: string) => string): Array<ResolvedUpdateFileInfo>;
|