From 62abcf5a173f4370dc3cafdce774e9ffc9559465 Mon Sep 17 00:00:00 2001 From: Mark Lee Date: Wed, 4 Mar 2020 14:42:33 -0800 Subject: [PATCH] fix(core): overrideTargets inherit the named maker config in the Forge config --- packages/api/core/src/api/make.ts | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/api/core/src/api/make.ts b/packages/api/core/src/api/make.ts index 88edabde66..b6855c69a1 100644 --- a/packages/api/core/src/api/make.ts +++ b/packages/api/core/src/api/make.ts @@ -26,6 +26,23 @@ class MakerImpl extends MakerBase { defaultPlatforms = []; } +type MakeTarget = IForgeResolvableMaker | MakerBase; + +function generateTargets(forgeConfig: ForgeConfig, overrideTargets?: MakeTarget[]) { + if (overrideTargets) { + return overrideTargets.map((target) => { + if (typeof target === 'string') { + return forgeConfig.makers.find( + (maker) => (maker as IForgeResolvableMaker).name === target, + ) || { name: target }; + } + + return target; + }); + } + return forgeConfig.makers; +} + export interface MakeOptions { /** * The path to the app from which distrubutables are generated @@ -42,7 +59,7 @@ export interface MakeOptions { /** * An array of make targets to override your forge config */ - overrideTargets?: (IForgeResolvableMaker | MakerBase)[]; + overrideTargets?: MakeTarget[]; /** * The target architecture */ @@ -90,12 +107,8 @@ export default async ({ const makers: { [key: number]: MakerBase; } = {}; - let targets = (overrideTargets || forgeConfig.makers).map((target) => { - if (typeof target === 'string') { - return { name: target }; - } - return target; - }); + + let targets = generateTargets(forgeConfig, overrideTargets); let targetId = 0; for (const target of targets) {