async function getStacks()

in src/detect-drift.lambda.ts [54:68]


async function getStacks(requestedStackNames?: string[]): Promise<Stacks> {
  let allStacks: Stacks = [];
  let nextToken: NextToken | undefined;
  do {
    const response = await cloudformation.describeStacks().promise();
    allStacks = response.Stacks ? [...allStacks, ...response.Stacks!] : allStacks;
    nextToken = response.NextToken;
  } while (nextToken);

  console.log(`Received stacks: ${allStacks.map(x => x.StackName)}`);
  const requestedStacks = requestedStackNames ? allStacks.filter(stack => requestedStackNames.includes(stack.StackName)) : allStacks;
  console.log(`Returning requested stacks: ${requestedStacks.map(x => x.StackName)}`);

  return requestedStacks;
}