UNPKG

@enterprise-cmcs/macpro-serverless-running-stages

Version:
34 lines (33 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ServerlessRunningStages = void 0; const client_cloudformation_1 = require("@aws-sdk/client-cloudformation"); function tagsListToTagDict(tagList) { const retVal = {}; for (const keyValPair of tagList) { if (keyValPair.Key && keyValPair.Value) { retVal[keyValPair.Key] = keyValPair.Value; } } return retVal; } class ServerlessRunningStages { static async getAllStagesForRegion(region, ignoreStages = ["master"]) { const client = new client_cloudformation_1.CloudFormationClient({ region }); const uniqueStages = new Set(); for await (const page of (0, client_cloudformation_1.paginateDescribeStacks)({ client }, {})) { if (page.Stacks) { page.Stacks.forEach((stack) => { const tags = tagsListToTagDict(stack.Tags || []); if (tags["STAGE"] && tags["PROJECT"] === process.env.PROJECT && !ignoreStages.includes(tags["STAGE"])) { uniqueStages.add(tags["STAGE"]); } }); } } return Array.from(uniqueStages); } } exports.ServerlessRunningStages = ServerlessRunningStages;