diff --git a/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/garbage-collector.ts b/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/garbage-collector.ts index 6d7397cc7..84f13239e 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/garbage-collector.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/garbage-collector.ts @@ -219,7 +219,12 @@ export class GarbageCollector { const activeAssets = new ActiveAssetCache(); // Grab stack templates first - await refreshStacks(cfn, this.ioHelper, activeAssets, qualifier); + await refreshStacks({ + cfn, + ioHelper: this.ioHelper, + activeAssets, + qualifier, + }); // Start the background refresh const backgroundStackRefresh = new BackgroundStackRefresh({ cfn, diff --git a/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/stack-refresh.ts b/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/stack-refresh.ts index eac4ac43f..83e13ba86 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/stack-refresh.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/api/garbage-collection/stack-refresh.ts @@ -97,11 +97,18 @@ function bootstrapFilter(parameters?: ParameterDeclaration[], qualifier?: string splitBootstrapVersion[2] != qualifier); } -export async function refreshStacks(cfn: ICloudFormationClient, ioHelper: IoHelper, activeAssets: ActiveAssetCache, qualifier?: string) { +export interface RefreshStacksProps { + readonly cfn: ICloudFormationClient; + readonly ioHelper: IoHelper; + readonly activeAssets: ActiveAssetCache; + readonly qualifier?: string; +} + +export async function refreshStacks(props: RefreshStacksProps) { try { - const stacks = await fetchAllStackTemplates(cfn, ioHelper, qualifier); + const stacks = await fetchAllStackTemplates(props.cfn, props.ioHelper, props.qualifier); for (const stack of stacks) { - activeAssets.rememberStack(stack); + props.activeAssets.rememberStack(stack); } } catch (err) { throw new ToolkitError(`Error refreshing stacks: ${err}`); @@ -154,7 +161,12 @@ export class BackgroundStackRefresh { private async refresh() { const startTime = Date.now(); - await refreshStacks(this.props.cfn, this.props.ioHelper, this.props.activeAssets, this.props.qualifier); + await refreshStacks({ + cfn: this.props.cfn, + ioHelper: this.props.ioHelper, + activeAssets: this.props.activeAssets, + qualifier: this.props.qualifier, + }); this.justRefreshedStacks(); // If the last invocation of refreshStacks takes <5 minutes, the next invocation starts 5 minutes after the last one started.