From 6cc52a10812e13f89a0716a5e31f8b6820a88cbe Mon Sep 17 00:00:00 2001 From: Mark Lee Date: Mon, 10 Feb 2020 18:02:37 -0800 Subject: [PATCH] fix: default falsy platform/arch to host values --- src/index.ts | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/index.ts b/src/index.ts index 739b77b16..b12808540 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ import { getArtifactFileName, getArtifactRemoteURL } from './artifact-utils'; import { ElectronArtifactDetails, ElectronDownloadRequestOptions, + ElectronPlatformArtifactDetails, ElectronPlatformArtifactDetailsWithDefaults, } from './types'; import { Cache } from './Cache'; @@ -58,20 +59,24 @@ export function download( export async function downloadArtifact( _artifactDetails: ElectronPlatformArtifactDetailsWithDefaults, ): Promise { - const artifactDetails: ElectronArtifactDetails = _artifactDetails.isGeneric - ? { - ..._artifactDetails, - } - : { - platform: process.platform, - arch: process.arch, - ..._artifactDetails, - }; + const artifactDetails: ElectronArtifactDetails = { + ...(_artifactDetails as ElectronArtifactDetails), + }; + if (!_artifactDetails.isGeneric) { + const platformArtifactDetails = artifactDetails as ElectronPlatformArtifactDetails; + if (!platformArtifactDetails.platform) { + d('No platform found, defaulting to the host platform'); + platformArtifactDetails.platform = process.platform; + } + if (platformArtifactDetails.arch) { + platformArtifactDetails.arch = getNodeArch(platformArtifactDetails.arch); + } else { + d('No arch found, defaulting to the host arch'); + platformArtifactDetails.arch = getHostArch(); + } + } ensureIsTruthyString(artifactDetails, 'version'); artifactDetails.version = normalizeVersion(artifactDetails.version); - if (artifactDetails.hasOwnProperty('arch')) { - (artifactDetails as any).arch = getNodeArch((artifactDetails as any).arch); - } const fileName = getArtifactFileName(artifactDetails); const url = getArtifactRemoteURL(artifactDetails);