UNPKG

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