From 20fd52a012d577b362146be670a48982426f35e8 Mon Sep 17 00:00:00 2001 From: Mehmet Mert Yildiran Date: Thu, 7 May 2020 16:13:07 +0300 Subject: [PATCH 1/2] Fix the default-lambda filter by excluding the JSON files too --- packages/lambda-at-edge/src/build.ts | 10 ++++++++-- .../.next/serverless/pages/blog.json | 0 .../simple-app/.next/serverless/pages/blog.json | 0 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 packages/lambda-at-edge/tests/fixtures/app-with-no-static-or-public-dir/.next/serverless/pages/blog.json create mode 100644 packages/lambda-at-edge/tests/fixtures/simple-app/.next/serverless/pages/blog.json diff --git a/packages/lambda-at-edge/src/build.ts b/packages/lambda-at-edge/src/build.ts index 883008d61c..49c29d19e3 100644 --- a/packages/lambda-at-edge/src/build.ts +++ b/packages/lambda-at-edge/src/build.ts @@ -126,8 +126,14 @@ class Builder { { // skip api pages from default lambda code filter: file => { - const isHTMLPage = path.extname(file) === ".html"; - return pathToPosix(file).indexOf("pages/api") === -1 && !isHTMLPage; + const isHTML = path.extname(file) === ".html"; + const isJSON = path.extname(file) === ".json"; + + return ( + pathToPosix(file).indexOf("pages/api") === -1 && + !isHTML && + !isJSON + ); } } ) diff --git a/packages/lambda-at-edge/tests/fixtures/app-with-no-static-or-public-dir/.next/serverless/pages/blog.json b/packages/lambda-at-edge/tests/fixtures/app-with-no-static-or-public-dir/.next/serverless/pages/blog.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/lambda-at-edge/tests/fixtures/simple-app/.next/serverless/pages/blog.json b/packages/lambda-at-edge/tests/fixtures/simple-app/.next/serverless/pages/blog.json new file mode 100644 index 0000000000..e69de29bb2 From 2811fa48d4a9658493aa868e0f10b9056c8e6e59 Mon Sep 17 00:00:00 2001 From: danielconde Date: Thu, 7 May 2020 23:41:40 +0100 Subject: [PATCH 2/2] add a test and better var names --- packages/lambda-at-edge/src/build.ts | 14 +++++++------- packages/lambda-at-edge/tests/build.test.ts | 8 ++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/lambda-at-edge/src/build.ts b/packages/lambda-at-edge/src/build.ts index 49c29d19e3..3e7f4dbb9c 100644 --- a/packages/lambda-at-edge/src/build.ts +++ b/packages/lambda-at-edge/src/build.ts @@ -124,15 +124,15 @@ class Builder { join(this.nextConfigDir, ".next/serverless/pages"), join(this.outputDir, DEFAULT_LAMBDA_CODE_DIR, "pages"), { - // skip api pages from default lambda code - filter: file => { - const isHTML = path.extname(file) === ".html"; - const isJSON = path.extname(file) === ".json"; + filter: (file: string) => { + const isNotPrerenderedHTMLPage = path.extname(file) !== ".html"; + const isNotStaticPropsJSONFile = path.extname(file) !== ".json"; + const isNotApiPage = pathToPosix(file).indexOf("pages/api") === -1; return ( - pathToPosix(file).indexOf("pages/api") === -1 && - !isHTML && - !isJSON + isNotApiPage && + isNotPrerenderedHTMLPage && + isNotStaticPropsJSONFile ); } } diff --git a/packages/lambda-at-edge/tests/build.test.ts b/packages/lambda-at-edge/tests/build.test.ts index 797210cba6..50b3ea1c6d 100644 --- a/packages/lambda-at-edge/tests/build.test.ts +++ b/packages/lambda-at-edge/tests/build.test.ts @@ -152,7 +152,7 @@ describe("Builder Tests", () => { describe("Default Handler Artefact Files", () => { it("copies build files", async () => { - expect.assertions(5); + expect.assertions(7); const files = await fse.readdir( join(outputDir, `${DEFAULT_LAMBDA_CODE_DIR}`) @@ -185,7 +185,11 @@ describe("Builder Tests", () => { // api pages should not be included in the default lambda expect(apiDirExists).toEqual(false); - // html pages should not be included in the default lambda + // HTML Prerendered pages or JSON static props files + // should not be included in the default lambda + expect(pages).not.toContain(["blog.json"]); + expect(pages).not.toContain(["about.html", "terms.html"]); + expect(pages).toEqual(["_error.js", "blog.js", "customers"]); expect(customerPages).toEqual(["[...catchAll].js", "[post].js"]); });