@enterprise-cmcs/macpro-serverless-running-stages
Version:
Returns a list of all running Serverless stage in an AWS region.
34 lines (33 loc) • 1.33 kB
JavaScript
;
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;