UNPKG

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