|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { ensureIsTruthyString } from './utils';
- const BASE_URL = 'https://github.com/electron/electron/releases/download/';
- const NIGHTLY_BASE_URL = 'https://github.com/electron/nightlies/releases/download/';
- export function getArtifactFileName(details) {
- ensureIsTruthyString(details, 'artifactName');
- if (details.isGeneric) {
- return details.artifactName;
- }
- ensureIsTruthyString(details, 'arch');
- ensureIsTruthyString(details, 'platform');
- ensureIsTruthyString(details, 'version');
- return `${[
- details.artifactName,
- details.version,
- details.platform,
- details.arch,
- ...(details.artifactSuffix ? [details.artifactSuffix] : []),
- ].join('-')}.zip`;
- }
- function mirrorVar(name, options, defaultValue) {
- // Convert camelCase to camel_case for env var reading
- const lowerName = name.replace(/([a-z])([A-Z])/g, (_, a, b) => `${a}_${b}`).toLowerCase();
- return (process.env[`NPM_CONFIG_ELECTRON_${lowerName.toUpperCase()}`] ||
- process.env[`npm_config_electron_${lowerName}`] ||
- process.env[`npm_package_config_electron_${lowerName}`] ||
- process.env[`ELECTRON_${lowerName.toUpperCase()}`] ||
- options[name] ||
- defaultValue);
- }
- export async function getArtifactRemoteURL(details) {
- const opts = details.mirrorOptions || {};
- let base = mirrorVar('mirror', opts, BASE_URL);
- if (details.version.includes('nightly')) {
- const nightlyDeprecated = mirrorVar('nightly_mirror', opts, '');
- if (nightlyDeprecated) {
- base = nightlyDeprecated;
- console.warn(`nightly_mirror is deprecated, please use nightlyMirror`);
- }
- else {
- base = mirrorVar('nightlyMirror', opts, NIGHTLY_BASE_URL);
- }
- }
- const path = mirrorVar('customDir', opts, details.version).replace('{{ version }}', details.version.replace(/^v/, ''));
- const file = mirrorVar('customFilename', opts, getArtifactFileName(details));
- // Allow customized download URL resolution.
- if (opts.resolveAssetURL) {
- const url = await opts.resolveAssetURL(details);
- return url;
- }
- return `${base}${path}/${file}`;
- }
- //# sourceMappingURL=artifact-utils.js.map
|