From c152c64ca7c50080209fe01f18c6e4479c6e6317 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 9 Oct 2025 17:23:52 +0000
Subject: [PATCH 01/13] Initial plan
From ecc39066bf8eb4d98c92feaefeb5ac8c0e69dcf3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 9 Oct 2025 17:35:06 +0000
Subject: [PATCH 02/13] Initial test setup for remote function read at
top-level issue
Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
---
.../package.json | 19 +++++++++++++++++++
.../src/app.html | 11 +++++++++++
.../src/routes/+page.svelte | 1 +
.../src/routes/data.remote.js | 10 ++++++++++
.../src/routes/test.txt | 1 +
.../svelte.config.js | 13 +++++++++++++
.../tsconfig.json | 3 +++
.../vite.config.js | 8 ++++++++
pnpm-lock.yaml | 18 ++++++++++++++++++
9 files changed, 84 insertions(+)
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
create mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
new file mode 100644
index 000000000000..58b948b009c5
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "test-remote-function-read-at-top-level",
+ "private": true,
+ "version": "1.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "prepare": "svelte-kit sync"
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-auto": "workspace:^",
+ "@sveltejs/kit": "workspace:^",
+ "@sveltejs/vite-plugin-svelte": "catalog:",
+ "svelte": "catalog:",
+ "vite": "catalog:"
+ }
+}
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
new file mode 100644
index 000000000000..d533c5e31716
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
new file mode 100644
index 000000000000..3e649ad5be68
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
@@ -0,0 +1 @@
+Test Page
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
new file mode 100644
index 000000000000..db8f8c191f99
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
@@ -0,0 +1,10 @@
+import { query, read } from '$app/server';
+import testfile from './test.txt';
+
+// This should fail without the fix because read implementation isn't set
+// when remote functions are being analysed
+const content = read(testfile);
+
+export const getFile = query(() => {
+ return { content };
+});
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
new file mode 100644
index 000000000000..d670460b4b4a
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
@@ -0,0 +1 @@
+test content
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
new file mode 100644
index 000000000000..5e75228df551
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
@@ -0,0 +1,13 @@
+import adapter from '../../../../../adapter-auto/index.js';
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ kit: {
+ adapter: adapter(),
+ experimental: {
+ remoteFunctions: true
+ }
+ }
+};
+
+export default config;
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
new file mode 100644
index 000000000000..1864d58c1554
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tsconfig.json"
+}
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
new file mode 100644
index 000000000000..8747050534d8
--- /dev/null
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
@@ -0,0 +1,8 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+
+/** @type {import('vite').UserConfig} */
+const config = {
+ plugins: [sveltekit()]
+};
+
+export default config;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6d795ceb63e6..b4916f9c7130 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1071,6 +1071,24 @@ importers:
specifier: 'catalog:'
version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+ packages/kit/test/build-errors/apps/remote-function-read-at-top-level:
+ devDependencies:
+ '@sveltejs/adapter-auto':
+ specifier: workspace:^
+ version: link:../../../../../adapter-auto
+ '@sveltejs/kit':
+ specifier: workspace:^
+ version: link:../../../..
+ '@sveltejs/vite-plugin-svelte':
+ specifier: 'catalog:'
+ version: 6.0.0-next.3(svelte@5.39.8)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))
+ svelte:
+ specifier: 'catalog:'
+ version: 5.39.8
+ vite:
+ specifier: 'catalog:'
+ version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
+
packages/kit/test/build-errors/apps/server-only-folder:
devDependencies:
'@sveltejs/kit':
From 1a7bfd8d5ba97aade2353d15ddb8c5cfc1acc8d3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 9 Oct 2025 17:41:02 +0000
Subject: [PATCH 03/13] Update test to use prerender remote function
Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
---
.../src/routes/data.remote.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
index db8f8c191f99..4e2a3fb1e910 100644
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
+++ b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
@@ -1,10 +1,10 @@
-import { query, read } from '$app/server';
+import { prerender, read } from '$app/server';
import testfile from './test.txt';
// This should fail without the fix because read implementation isn't set
-// when remote functions are being analysed
+// when remote functions are being analysed during build
const content = read(testfile);
-export const getFile = query(() => {
- return { content };
+export const getData = prerender(() => {
+ return { text: content };
});
From c7f258470d3a132360ddd9814185304d468b3d2a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 9 Oct 2025 17:46:37 +0000
Subject: [PATCH 04/13] Fix: set manifest and read implementation before
loading remote functions in prerender
Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
---
packages/kit/src/core/postbuild/analyse.js | 2 +-
packages/kit/src/core/postbuild/prerender.js | 8 +++++---
.../src/routes/remote/prerender/prerender.remote.js | 12 +++++++++++-
.../apps/basics/src/routes/remote/prerender/test.txt | 1 +
4 files changed, 18 insertions(+), 5 deletions(-)
create mode 100644 packages/kit/test/apps/basics/src/routes/remote/prerender/test.txt
diff --git a/packages/kit/src/core/postbuild/analyse.js b/packages/kit/src/core/postbuild/analyse.js
index 2ea1bf759bf1..c71a8addf65a 100644
--- a/packages/kit/src/core/postbuild/analyse.js
+++ b/packages/kit/src/core/postbuild/analyse.js
@@ -56,7 +56,7 @@ async function analyse({
// essential we do this before analysing the code
internal.set_building();
- // set env, in case it's used in initialisation
+ // set env, `read`, and `manifest`, in case they're used in initialisation
const { publicPrefix: public_prefix, privatePrefix: private_prefix } = config.env;
const private_env = filter_env(env, private_prefix, public_prefix);
const public_env = filter_env(env, public_prefix, private_prefix);
diff --git a/packages/kit/src/core/postbuild/prerender.js b/packages/kit/src/core/postbuild/prerender.js
index d77a79f85fd1..8caa68fdfe85 100644
--- a/packages/kit/src/core/postbuild/prerender.js
+++ b/packages/kit/src/core/postbuild/prerender.js
@@ -485,14 +485,16 @@ async function prerender({ hash, out, manifest_path, metadata, verbose, env }) {
}
}
- // the user's remote function modules may reference environment variables at
- // the top-level so we need to set `env` before evaluating those modules
- // to avoid potential runtime errors
+ // the user's remote function modules may reference environment variables,
+ // `read` or the `manifest` at the top-level so we need to set them before
+ // evaluating those modules to avoid potential runtime errors
const { publicPrefix: public_prefix, privatePrefix: private_prefix } = config.env;
const private_env = filter_env(env, private_prefix, public_prefix);
const public_env = filter_env(env, public_prefix, private_prefix);
internal.set_private_env(private_env);
internal.set_public_env(public_env);
+ internal.set_manifest(manifest);
+ internal.set_read_implementation((file) => createReadableStream(`${out}/server/${file}`));
/** @type {Array} */
const prerender_functions = [];
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index 1f98f8c08f99..8ab465488060 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -1,5 +1,10 @@
import { building, dev } from '$app/environment';
-import { prerender } from '$app/server';
+import { prerender, read } from '$app/server';
+import testfile from './test.txt';
+
+// Test that `read()` is available at the top level when loading remote functions
+// https://github.com/sveltejs/kit/issues/XXXXX
+const content = read(testfile);
export const prerendered = prerender(() => {
if (!building && !dev) {
@@ -23,3 +28,8 @@ export const prerendered_entries = prerender(
},
{ inputs: () => ['a', 'b', /* to test correct encoding */ '中文'], dynamic: true }
);
+
+// Test that the content from the top-level read() call is available
+export const with_read = prerender(() => {
+ return content;
+});
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/test.txt b/packages/kit/test/apps/basics/src/routes/remote/prerender/test.txt
new file mode 100644
index 000000000000..40ea33488789
--- /dev/null
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/test.txt
@@ -0,0 +1 @@
+test content from read()
From 9c5dcdc57eea88259a0c06f6a70cbdfda636b623 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 9 Oct 2025 17:48:48 +0000
Subject: [PATCH 05/13] Remove temporary test app
Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
---
.../package.json | 19 -------------------
.../src/app.html | 11 -----------
.../src/routes/+page.svelte | 1 -
.../src/routes/data.remote.js | 10 ----------
.../src/routes/test.txt | 1 -
.../svelte.config.js | 13 -------------
.../tsconfig.json | 3 ---
.../vite.config.js | 8 --------
8 files changed, 66 deletions(-)
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
delete mode 100644 packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
deleted file mode 100644
index 58b948b009c5..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "test-remote-function-read-at-top-level",
- "private": true,
- "version": "1.0.0",
- "type": "module",
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "prepare": "svelte-kit sync"
- },
- "devDependencies": {
- "@sveltejs/adapter-auto": "workspace:^",
- "@sveltejs/kit": "workspace:^",
- "@sveltejs/vite-plugin-svelte": "catalog:",
- "svelte": "catalog:",
- "vite": "catalog:"
- }
-}
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
deleted file mode 100644
index d533c5e31716..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/app.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- %sveltekit.head%
-
-
- %sveltekit.body%
-
-
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
deleted file mode 100644
index 3e649ad5be68..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/+page.svelte
+++ /dev/null
@@ -1 +0,0 @@
-Test Page
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
deleted file mode 100644
index 4e2a3fb1e910..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/data.remote.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { prerender, read } from '$app/server';
-import testfile from './test.txt';
-
-// This should fail without the fix because read implementation isn't set
-// when remote functions are being analysed during build
-const content = read(testfile);
-
-export const getData = prerender(() => {
- return { text: content };
-});
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
deleted file mode 100644
index d670460b4b4a..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/src/routes/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-test content
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
deleted file mode 100644
index 5e75228df551..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/svelte.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import adapter from '../../../../../adapter-auto/index.js';
-
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- kit: {
- adapter: adapter(),
- experimental: {
- remoteFunctions: true
- }
- }
-};
-
-export default config;
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
deleted file mode 100644
index 1864d58c1554..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/tsconfig.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": "../../tsconfig.json"
-}
diff --git a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js b/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
deleted file mode 100644
index 8747050534d8..000000000000
--- a/packages/kit/test/build-errors/apps/remote-function-read-at-top-level/vite.config.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { sveltekit } from '@sveltejs/kit/vite';
-
-/** @type {import('vite').UserConfig} */
-const config = {
- plugins: [sveltekit()]
-};
-
-export default config;
From ef14986ceaabff98e4a4d80a55ac5b60c72eeb7a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 10 Oct 2025 04:12:24 +0000
Subject: [PATCH 06/13] Add page using with_read remote function and changeset
Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
---
.changeset/fix-remote-read-top-level.md | 5 +++++
.../src/routes/remote/prerender/+page.svelte | 6 +++++-
pnpm-lock.yaml | 18 ------------------
3 files changed, 10 insertions(+), 19 deletions(-)
create mode 100644 .changeset/fix-remote-read-top-level.md
diff --git a/.changeset/fix-remote-read-top-level.md b/.changeset/fix-remote-read-top-level.md
new file mode 100644
index 000000000000..01753e90515e
--- /dev/null
+++ b/.changeset/fix-remote-read-top-level.md
@@ -0,0 +1,5 @@
+---
+'@sveltejs/kit': patch
+---
+
+fix: set manifest and read implementation before loading remote functions in prerender
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/+page.svelte b/packages/kit/test/apps/basics/src/routes/remote/prerender/+page.svelte
index 2aed2389b185..f2c7557001e1 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/+page.svelte
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/+page.svelte
@@ -1,8 +1,9 @@
whole-page
@@ -17,3 +18,6 @@
>
{live_result}
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b4916f9c7130..6d795ceb63e6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1071,24 +1071,6 @@ importers:
specifier: 'catalog:'
version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
- packages/kit/test/build-errors/apps/remote-function-read-at-top-level:
- devDependencies:
- '@sveltejs/adapter-auto':
- specifier: workspace:^
- version: link:../../../../../adapter-auto
- '@sveltejs/kit':
- specifier: workspace:^
- version: link:../../../..
- '@sveltejs/vite-plugin-svelte':
- specifier: 'catalog:'
- version: 6.0.0-next.3(svelte@5.39.8)(vite@6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0))
- svelte:
- specifier: 'catalog:'
- version: 5.39.8
- vite:
- specifier: 'catalog:'
- version: 6.3.6(@types/node@18.19.119)(jiti@2.4.2)(lightningcss@1.30.1)(yaml@2.8.0)
-
packages/kit/test/build-errors/apps/server-only-folder:
devDependencies:
'@sveltejs/kit':
From 859c02a5d10e210ebffa048b7a7fbc59716238e3 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 16:58:07 +0800
Subject: [PATCH 07/13] Apply suggestion from @teemingc
---
.changeset/fix-remote-read-top-level.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.changeset/fix-remote-read-top-level.md b/.changeset/fix-remote-read-top-level.md
index 01753e90515e..59df4be0068c 100644
--- a/.changeset/fix-remote-read-top-level.md
+++ b/.changeset/fix-remote-read-top-level.md
@@ -2,4 +2,4 @@
'@sveltejs/kit': patch
---
-fix: set manifest and read implementation before loading remote functions in prerender
+fix: allow `read` to be used at the top-level of remote function files
From cecf4728e3ce20cad0c94f8dfde1830c9ab98fc5 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 16:59:49 +0800
Subject: [PATCH 08/13] Apply suggestion from @teemingc
---
.../basics/src/routes/remote/prerender/prerender.remote.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index 8ab465488060..0b0eb97d3663 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -2,8 +2,7 @@ import { building, dev } from '$app/environment';
import { prerender, read } from '$app/server';
import testfile from './test.txt';
-// Test that `read()` is available at the top level when loading remote functions
-// https://github.com/sveltejs/kit/issues/XXXXX
+// test that using `read()` at the top-level of a remote function file doesn't throw an error when we evaluate the remote function files
const content = read(testfile);
export const prerendered = prerender(() => {
From 29d7363c2fd2eaeb6aaea88afc69c3efafb62251 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 17:00:18 +0800
Subject: [PATCH 09/13] Apply suggestion from @teemingc
---
.../apps/basics/src/routes/remote/prerender/prerender.remote.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index 0b0eb97d3663..0cabc3237841 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -28,7 +28,6 @@ export const prerendered_entries = prerender(
{ inputs: () => ['a', 'b', /* to test correct encoding */ '中文'], dynamic: true }
);
-// Test that the content from the top-level read() call is available
export const with_read = prerender(() => {
return content;
});
From f8a701bb1d8a4163d2f90ed6cd3a10ee9846bdd0 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 17:01:03 +0800
Subject: [PATCH 10/13] Apply suggestion from @teemingc
---
.../basics/src/routes/remote/prerender/prerender.remote.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index 0cabc3237841..aad4f1000005 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -3,7 +3,8 @@ import { prerender, read } from '$app/server';
import testfile from './test.txt';
// test that using `read()` at the top-level of a remote function file doesn't throw an error when we evaluate the remote function files
-const content = read(testfile);
+const response = read(testfile);
+const content = await response.text();
export const prerendered = prerender(() => {
if (!building && !dev) {
From 2c9096a1facb108ea5ac008483b58f0dc63592d9 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 17:02:01 +0800
Subject: [PATCH 11/13] Apply suggestion from @teemingc
---
.../apps/basics/src/routes/remote/prerender/prerender.remote.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index aad4f1000005..0f093d647d73 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -1,6 +1,6 @@
import { building, dev } from '$app/environment';
import { prerender, read } from '$app/server';
-import testfile from './test.txt';
+import text from './test.txt?url';
// test that using `read()` at the top-level of a remote function file doesn't throw an error when we evaluate the remote function files
const response = read(testfile);
From 89b2f6ebe8b1239f5d50b4533c57b037a6cce6d8 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 17:02:15 +0800
Subject: [PATCH 12/13] Apply suggestion from @teemingc
---
.../apps/basics/src/routes/remote/prerender/prerender.remote.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index 0f093d647d73..cd5c486e2e55 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -3,7 +3,7 @@ import { prerender, read } from '$app/server';
import text from './test.txt?url';
// test that using `read()` at the top-level of a remote function file doesn't throw an error when we evaluate the remote function files
-const response = read(testfile);
+const response = read(text);
const content = await response.text();
export const prerendered = prerender(() => {
From 4b5406be91db76ec5111667fae312dcd5ed9baf8 Mon Sep 17 00:00:00 2001
From: Tee Ming
Date: Fri, 10 Oct 2025 17:03:09 +0800
Subject: [PATCH 13/13] Apply suggestion from @teemingc
---
.../basics/src/routes/remote/prerender/prerender.remote.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
index cd5c486e2e55..fa16970f0572 100644
--- a/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
+++ b/packages/kit/test/apps/basics/src/routes/remote/prerender/prerender.remote.js
@@ -2,7 +2,8 @@ import { building, dev } from '$app/environment';
import { prerender, read } from '$app/server';
import text from './test.txt?url';
-// test that using `read()` at the top-level of a remote function file doesn't throw an error when we evaluate the remote function files
+// test that using `read()` at the top-level of a remote function file doesn't
+// throw an error when we evaluate the remote function files during build
const response = read(text);
const content = await response.text();