UNPKG

5.92 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "file": "publisher.js",
4 "sourceRoot": "",
5 "sources": [
6 "../src/publisher.ts"
7 ],
8 "names": [],
9 "mappings": "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",
10 "sourcesContent": [
11 "import { ClientRequest } from \"http\"\nimport { stat, Stats, createReadStream } from \"fs-extra-p\"\nimport { basename } from \"path\"\nimport ProgressBar from \"progress-ex\"\nimport { ProgressCallbackTransform } from \"electron-builder-http/out/ProgressCallbackTransform\"\nimport { MultiProgress } from \"./multiProgress\"\nimport { CancellationToken } from \"electron-builder-http/out/CancellationToken\"\nimport { green } from \"chalk\"\nimport { log } from \"electron-builder-util/out/log\"\n\nexport type PublishPolicy = \"onTag\" | \"onTagOrDraft\" | \"always\" | \"never\"\n\nexport interface PublishOptions {\n publish?: PublishPolicy | null\n\n draft?: boolean\n prerelease?: boolean\n}\n\nexport interface PublishContext {\n readonly cancellationToken: CancellationToken\n readonly progress: MultiProgress | null\n}\n\nconst progressBarOptions = {\n incomplete: \" \",\n width: 20,\n}\n\nexport abstract class Publisher {\n constructor(protected readonly context: PublishContext) {\n }\n\n abstract get providerName(): string\n\n abstract upload(file: string, safeArtifactName?: string): Promise<any>\n\n protected createProgressBar(fileName: string, fileStat: Stats): ProgressBar | null {\n if (this.context.progress == null) {\n log(`Uploading ${fileName} to ${this.providerName}`)\n return null\n }\n else {\n return this.context.progress.createBar(`[:bar] :percent :etas | ${green(fileName)} to ${this.providerName}`, Object.assign({total: fileStat.size}, progressBarOptions))\n }\n }\n\n protected createReadStreamAndProgressBar(file: string, fileStat: Stats, progressBar: ProgressBar | null, reject: (error: Error) => void): NodeJS.ReadableStream {\n const fileInputStream = createReadStream(file)\n fileInputStream.on(\"error\", reject)\n\n if (progressBar == null) {\n return fileInputStream\n }\n else {\n const progressStream = new ProgressCallbackTransform(fileStat.size, this.context.cancellationToken, it => progressBar.tick(it.delta))\n progressStream.on(\"error\", reject)\n return fileInputStream.pipe(progressStream)\n }\n }\n\n abstract toString(): string\n}\n\nexport abstract class HttpPublisher extends Publisher {\n constructor(protected readonly context: PublishContext, private readonly useSafeArtifactName = false) {\n super(context)\n }\n\n async upload(file: string, safeArtifactName?: string): Promise<any> {\n const fileName = (this.useSafeArtifactName ? safeArtifactName : null) || basename(file)\n const fileStat = await stat(file)\n\n const progressBar = this.createProgressBar(fileName, fileStat)\n await this.doUpload(fileName, fileStat.size, (request, reject) => {\n if (progressBar != null) {\n // reset (because can be called several times (several attempts)\n progressBar.update(0)\n }\n return this.createReadStreamAndProgressBar(file, fileStat, progressBar, reject).pipe(request)\n }, file)\n }\n\n uploadData(data: Buffer, fileName: string): Promise<any> {\n if (data == null || fileName == null) {\n throw new Error(\"data or fileName is null\")\n }\n return this.doUpload(fileName, data.length, it => it.end(data))\n }\n\n protected abstract doUpload(fileName: string, dataLength: number, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void, file?: string): Promise<any>\n}"
12 ]
13}