in lib/utils/addon-utils.ts [26:48]
descriptor.value = function( ...args: any[]) {
const dependencies = Array<Promise<Construct>>();
const clusterInfo: ClusterInfo = args[0];
const stack = clusterInfo.cluster.stack.stackName;
addOns.forEach( (addOn) => {
const dep = clusterInfo.getScheduledAddOn(addOn);
console.assert(dep, `Missing a dependency for ${addOn} for ${stack}`);
dependencies.push(dep!);
});
const result: Promise<Construct> = originalMethod.apply(this, args);
Promise.all(dependencies.values()).then((constructs) => {
constructs.forEach((construct) => {
result.then((resource) => {
resource.node.addDependency(construct);
});
});
}).catch(err => { throw new Error(err); });
return result;
};