diff --git a/.changeset/tasty-zebras-guess.md b/.changeset/tasty-zebras-guess.md new file mode 100644 index 000000000000..31ba9456a796 --- /dev/null +++ b/.changeset/tasty-zebras-guess.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-netlify': patch +--- + +fix: add redirects for routes containing `__data.json` suffix diff --git a/packages/adapter-netlify/index.js b/packages/adapter-netlify/index.js index 5d372ffe7eb4..2a6a297f7ec8 100644 --- a/packages/adapter-netlify/index.js +++ b/packages/adapter-netlify/index.js @@ -150,7 +150,7 @@ async function generate_edge_functions({ builder }) { * @param { boolean } params.split * @param { boolean } params.esm */ -function generate_lambda_functions({ builder, publish, split, esm }) { +async function generate_lambda_functions({ builder, publish, split, esm }) { builder.mkdirp('.netlify/functions-internal'); /** @type {string[]} */ @@ -177,7 +177,7 @@ function generate_lambda_functions({ builder, publish, split, esm }) { if (split) { builder.log.minor('Generating serverless functions...'); - builder.createEntries((route) => { + await builder.createEntries((route) => { const parts = []; // Netlify's syntax uses '*' and ':param' as "splats" and "placeholders" // https://docs.netlify.com/routing/redirects/redirect-options/#splats @@ -211,6 +211,7 @@ function generate_lambda_functions({ builder, publish, split, esm }) { writeFileSync(`.netlify/functions-internal/${name}.js`, fn); redirects.push(`${pattern} /.netlify/functions/${name} 200`); + redirects.push(`${pattern}/__data.json /.netlify/functions/${name} 200`); } }; });