diff --git a/index.ts b/index.ts index e14f18b6..bf7dd1f4 100644 --- a/index.ts +++ b/index.ts @@ -554,15 +554,26 @@ class ServerlessCustomDomain { } const stackFamilyName = this.serverless.service.provider.stackName || `${this.serverless.service.service}-${this.stage}`; - let familyStackNames; - try { - const describeStacksResponse = await this.cloudformation.describeStacks().promise(); - familyStackNames = describeStacksResponse.Stacks - .map((stack) => stack.StackName) - .filter((stackName) => stackName.includes(stackFamilyName)); - } catch (err) { - throw new Error("Error: Retrieving CloudFormation stacks.\n"); - } + const allStackDescriptions = []; + let nextToken = true; + while (nextToken) { + try { + const params = { NextToken: undefined }; + if (typeof nextToken === "string") { + params.NextToken = nextToken; + } + const describeStacksResponse = await this.cloudformation.describeStacks(params).promise(); + for (const stackDescription of describeStacksResponse.Stacks) { + allStackDescriptions.push(stackDescription); + } + nextToken = describeStacksResponse.NextToken; + } catch (err) { + throw new Error("Error: Retrieving CloudFormation stacks.\n"); + } + } + const familyStackNames = allStackDescriptions + .map((stack) => stack.StackName) + .filter((stackName) => stackName.includes(stackFamilyName)); let response; for (const familyStackName of familyStackNames) { try { diff --git a/package-lock.json b/package-lock.json index fd649ef2..4aa7992f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1434,7 +1434,6 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, - "optional": true, "requires": { "invert-kv": "^2.0.0" } diff --git a/package.json b/package.json index 7b539e7a..102f8230 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "serverless-domain-manager", - "version": "3.3.0", + "version": "3.3.1", "engines": { "node": ">=4.0" }, diff --git a/test/unit-tests/index.test.ts b/test/unit-tests/index.test.ts index a043f945..06505cb2 100644 --- a/test/unit-tests/index.test.ts +++ b/test/unit-tests/index.test.ts @@ -460,7 +460,7 @@ describe("Custom Domain Plugin", () => { describe("Gets Rest API correctly", () => { it("Fetches restApiId correctly when no ApiGateway specified", async () => { - AWS.mock("CloudFormation", "describeStacks", (callback) => { + AWS.mock("CloudFormation", "describeStacks", (params, callback) => { callback(null, { Stacks: [ { @@ -634,7 +634,7 @@ describe("Custom Domain Plugin", () => { AWS.mock("APIGateway", "createBasePathMapping", (params, callback) => { callback(null, params); }); - AWS.mock("CloudFormation", "describeStacks", (callback) => { + AWS.mock("CloudFormation", "describeStacks", (params, callback) => { callback(null, { Stacks: [ {