UNPKG

1.96 kBTypeScriptView Raw
1/// <reference types="node" />
2/// <reference types="node" />
3/// <reference types="node" />
4/// <reference types="node" />
5import { Arch } from "builder-util";
6import { CancellationToken, PublishProvider } from "builder-util-runtime";
7import { Stats } from "fs-extra";
8import { ClientRequest } from "http";
9import { MultiProgress } from "./multiProgress";
10import { ProgressBar } from "./progress";
11export type PublishPolicy = "onTag" | "onTagOrDraft" | "always" | "never";
12export { ProgressCallback } from "./progress";
13export interface PublishOptions {
14 publish?: PublishPolicy | null;
15}
16export interface PublishContext {
17 readonly cancellationToken: CancellationToken;
18 readonly progress: MultiProgress | null;
19}
20export interface UploadTask {
21 file: string;
22 fileContent?: Buffer | null;
23 arch: Arch | null;
24 safeArtifactName?: string | null;
25 timeout?: number | null;
26}
27export declare abstract class Publisher {
28 protected readonly context: PublishContext;
29 protected constructor(context: PublishContext);
30 abstract get providerName(): PublishProvider;
31 abstract upload(task: UploadTask): Promise<any>;
32 protected createProgressBar(fileName: string, size: number): ProgressBar | null;
33 protected createReadStreamAndProgressBar(file: string, fileStat: Stats, progressBar: ProgressBar | null, reject: (error: Error) => void): NodeJS.ReadableStream;
34 abstract toString(): string;
35}
36export declare abstract class HttpPublisher extends Publisher {
37 protected readonly context: PublishContext;
38 private readonly useSafeArtifactName;
39 protected constructor(context: PublishContext, useSafeArtifactName?: boolean);
40 upload(task: UploadTask): Promise<any>;
41 protected abstract doUpload(fileName: string, arch: Arch, dataLength: number, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void, file: string): Promise<any>;
42}
43export declare function getCiTag(): string | null;