UNPKG

2.1 kBTypeScriptView Raw
1/// <reference types="node" />
2/// <reference types="node" />
3import { CancellationToken, UpdateFileInfo, UpdateInfo } from "builder-util-runtime";
4import { OutgoingHttpHeaders, RequestOptions } from "http";
5import { URL } from "url";
6import { ElectronHttpExecutor } from "../electronHttpExecutor";
7import { ResolvedUpdateFileInfo } from "../main";
8export type ProviderPlatform = "darwin" | "linux" | "win32";
9export interface ProviderRuntimeOptions {
10 isUseMultipleRangeRequest: boolean;
11 platform: ProviderPlatform;
12 executor: ElectronHttpExecutor;
13}
14export 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}
33export declare function findFile(files: Array<ResolvedUpdateFileInfo>, extension: string, not?: Array<string>): ResolvedUpdateFileInfo | null | undefined;
34export declare function parseUpdateInfo(rawData: string | null, channelFile: string, channelFileUrl: URL): UpdateInfo;
35export declare function getFileList(updateInfo: UpdateInfo): Array<UpdateFileInfo>;
36export declare function resolveFiles(updateInfo: UpdateInfo, baseUrl: URL, pathTransformer?: (p: string) => string): Array<ResolvedUpdateFileInfo>;