Skip to content

Commit

Permalink
[fix] prerendered endpoint callable from non-prerendered server load (#…
Browse files Browse the repository at this point in the history
…8453)

Fixes #8341
  • Loading branch information
dummdidumm committed Jan 11, 2023
1 parent 0f283b8 commit 9c01c32
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .changeset/angry-ways-divide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/kit': patch
---

[fix] prerendered endpoint callable from non-prerendered server load
2 changes: 2 additions & 0 deletions packages/kit/src/runtime/server/data/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ export async function render_data(
});
}

state.initiator = route;

try {
const node_ids = [...route.page.layouts, route.page.leaf];
const invalidated = invalidated_data_nodes ?? node_ids.map(() => true);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { json } from '@sveltejs/kit';

export const prerender = true;

export function GET() {
return json({ message: 'Im prerendered and called from a non-prerendered +page.server.js' });
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/** @type {import('./$types').PageServerLoad} */
export async function load({ fetch }) {
const res = await fetch('/prerendering/prerendered-endpoint/api');
const json = await res.json();
return json;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<script>
export let data;
</script>

<h1>{data.message}</h1>
17 changes: 17 additions & 0 deletions packages/kit/test/apps/basics/test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -941,6 +941,23 @@ test.describe('Load', () => {

expect(await page.textContent('h1')).toBe('true');
});

test('Prerendered +server.js called from a non-prerendered +page.server.js works', async ({
page,
app,
javaScriptEnabled
}) => {
if (javaScriptEnabled) {
await page.goto('/');
await app.goto('/prerendering/prerendered-endpoint/page');
} else {
await page.goto('/prerendering/prerendered-endpoint/page');
}

expect(await page.textContent('h1')).toBe(
'Im prerendered and called from a non-prerendered +page.server.js'
);
});
});

test.describe('Nested layouts', () => {
Expand Down

0 comments on commit 9c01c32

Please sign in to comment.