From e6a9e0b807da2549660da5ecdcf6605691300fa7 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Jun 2024 10:32:27 +0300 Subject: [PATCH] Resolve bundles' defaults before generateBundleTask call --- lib/build/definitions/application.js | 20 ++++++++++++++------ lib/build/definitions/library.js | 22 +++++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/lib/build/definitions/application.js b/lib/build/definitions/application.js index 71a2f6a58..4a0602965 100644 --- a/lib/build/definitions/application.js +++ b/lib/build/definitions/application.js @@ -85,19 +85,27 @@ export default function({project, taskUtil, getTask}) { requiresDependencies: true, taskFunction: async ({workspace, dependencies, taskUtil, options}) => { const generateBundleTask = await getTask("generateBundle"); - return bundles.reduce(function(sequence, bundle) { - return sequence.then(async function() { - const {bundleDefinition, bundleOptions} = await enhanceBundleWithDefaults( - bundle.bundleDefinition, bundle.bundleOptions, taskUtil.getProject()); + // Async resolve default values for bundle definitions and options + const bundlesDefaults = await Promise.all( + bundles.map((bundle) => + enhanceBundleWithDefaults( + bundle.bundleDefinition, + bundle.bundleOptions, + taskUtil.getProject() + ) + ) + ); + return bundlesDefaults.reduce(async function(sequence, bundle) { + return sequence.then(function() { return generateBundleTask.task({ workspace, dependencies, taskUtil, options: { projectName: options.projectName, - bundleDefinition, - bundleOptions + bundleDefinition: bundle.bundleDefinition, + bundleOptions: bundle.bundleOptions } }); }); diff --git a/lib/build/definitions/library.js b/lib/build/definitions/library.js index 787ad1edf..953b016b6 100644 --- a/lib/build/definitions/library.js +++ b/lib/build/definitions/library.js @@ -120,19 +120,27 @@ export default function({project, taskUtil, getTask}) { requiresDependencies: true, taskFunction: async ({workspace, dependencies, taskUtil, options}) => { const generateBundleTask = await getTask("generateBundle"); - return bundles.reduce(function(sequence, bundle) { - return sequence.then(async function() { - const {bundleDefinition, bundleOptions} = await enhanceBundleWithDefaults( - bundle.bundleDefinition, bundle.bundleOptions, taskUtil.getProject()); - + // Async resolve default values for bundle definitions and options + const bundlesDefaults = await Promise.all( + bundles.map((bundle) => + enhanceBundleWithDefaults( + bundle.bundleDefinition, + bundle.bundleOptions, + taskUtil.getProject() + ) + ) + ); + + return bundlesDefaults.reduce(function(sequence, bundle) { + return sequence.then(function() { return generateBundleTask.task({ workspace, dependencies, taskUtil, options: { projectName: options.projectName, - bundleDefinition, - bundleOptions + bundleDefinition: bundle.bundleDefinition, + bundleOptions: bundle.bundleOptions } }); });