UNPKG

2.37 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.download = download;
7exports.getBinFromUrl = getBinFromUrl;
8exports.getBin = getBin;
9
10function _builderUtil() {
11 const data = require("builder-util");
12
13 _builderUtil = function () {
14 return data;
15 };
16
17 return data;
18}
19
20const versionToPromise = new Map();
21
22function download(url, output, checksum) {
23 const args = ["download", "--url", url, "--output", output];
24
25 if (checksum != null) {
26 args.push("--sha512", checksum);
27 }
28
29 return (0, _builderUtil().executeAppBuilder)(args);
30}
31
32function getBinFromUrl(name, version, checksum) {
33 const dirName = `${name}-${version}`;
34 let url;
35
36 if (process.env.ELECTRON_BUILDER_BINARIES_DOWNLOAD_OVERRIDE_URL) {
37 url = process.env.ELECTRON_BUILDER_BINARIES_DOWNLOAD_OVERRIDE_URL + "/" + dirName + ".7z";
38 } else {
39 const baseUrl = process.env.NPM_CONFIG_ELECTRON_BUILDER_BINARIES_MIRROR || process.env.npm_config_electron_builder_binaries_mirror || process.env.npm_package_config_electron_builder_binaries_mirror || process.env.ELECTRON_BUILDER_BINARIES_MIRROR || "https://github.com/electron-userland/electron-builder-binaries/releases/download/";
40 const middleUrl = process.env.NPM_CONFIG_ELECTRON_BUILDER_BINARIES_CUSTOM_DIR || process.env.npm_config_electron_builder_binaries_custom_dir || process.env.npm_package_config_electron_builder_binaries_custom_dir || process.env.ELECTRON_BUILDER_BINARIES_CUSTOM_DIR || dirName;
41 const urlSuffix = dirName + ".7z";
42 url = `${baseUrl}${middleUrl}/${urlSuffix}`;
43 }
44
45 return getBin(dirName, url, checksum);
46}
47
48function getBin(name, url, checksum) {
49 // Old cache is ignored if cache environment variable changes
50 const cacheName = process.env.ELECTRON_BUILDER_CACHE + name;
51 let promise = versionToPromise.get(cacheName); // if rejected, we will try to download again
52
53 if (promise != null) {
54 return promise;
55 }
56
57 promise = doGetBin(name, url, checksum);
58 versionToPromise.set(cacheName, promise);
59 return promise;
60}
61
62function doGetBin(name, url, checksum) {
63 const args = ["download-artifact", "--name", name];
64
65 if (url != null) {
66 args.push("--url", url);
67 }
68
69 if (checksum != null) {
70 args.push("--sha512", checksum);
71 }
72
73 return (0, _builderUtil().executeAppBuilder)(args);
74}
75// __ts-babel@6.0.4
76//# sourceMappingURL=binDownload.js.map
\No newline at end of file