kit: [hooks] `sequence` helper function doesn't account for `preload`
Describe the bug
The sequence helper funciton doesn’t seem to call the preload function specified in handle hooks.
Reproduction
Please find the hooks.server.js file as such:
import { sequence } from '@sveltejs/kit/hooks';
const preloadFonts = async ({ event, resolve }) =>
await resolve(event, {
preload: ({ type, path }) => {
if (type === 'font') {
console.log(type, path);
return true;
}
return false;
}
});
export const handle = sequence(preloadFonts);
// export const handle = preloadFonts;
Run npm run build.
The following log output is seen when handle is set to preloadFonts, but not when it is set to sequence(preloadFonts).
Logs
vite v4.0.0 building SSR bundle for production...
✓ 63 modules transformed.
6:51:28 PM [vite-plugin-svelte] ssr compile done.
package files time avg
kit-template-default 7 0.14s 20.1ms
.svelte-kit/output/server/vite-manifest.json 2.71 kB
.svelte-kit/output/server/entries/pages/_page.js 0.05 kB
.svelte-kit/output/server/entries/pages/about/_page.js 0.09 kB
.svelte-kit/output/server/chunks/hooks.server.js 0.27 kB
.svelte-kit/output/server/entries/fallbacks/error.svelte.js 0.62 kB
.svelte-kit/output/server/entries/pages/about/_page.svelte.js 0.93 kB
.svelte-kit/output/server/chunks/stores.js 1.02 kB
.svelte-kit/output/server/chunks/index2.js 1.32 kB
.svelte-kit/output/server/chunks/index.js 4.15 kB
.svelte-kit/output/server/entries/pages/_layout.svelte.js 4.40 kB
.svelte-kit/output/server/entries/pages/_page.svelte.js 7.45 kB
.svelte-kit/output/server/index.js 80.79 kB
font ./_app/immutable/assets/fira-mono-cyrillic-ext-400-normal-3df7909e.woff2
font ./_app/immutable/assets/fira-mono-all-400-normal-1e3b098c.woff
font ./_app/immutable/assets/fira-mono-cyrillic-400-normal-c7d433fd.woff2
font ./_app/immutable/assets/fira-mono-greek-ext-400-normal-9e2fe623.woff2
font ./_app/immutable/assets/fira-mono-greek-400-normal-a8be01ce.woff2
font ./_app/immutable/assets/fira-mono-latin-ext-400-normal-6bfabd30.woff2
font ./_app/immutable/assets/fira-mono-latin-400-normal-e43b3538.woff2
font ./_app/immutable/assets/fira-mono-cyrillic-ext-400-normal-3df7909e.woff2
font ./_app/immutable/assets/fira-mono-all-400-normal-1e3b098c.woff
font ./_app/immutable/assets/fira-mono-cyrillic-400-normal-c7d433fd.woff2
font ./_app/immutable/assets/fira-mono-greek-ext-400-normal-9e2fe623.woff2
font ./_app/immutable/assets/fira-mono-greek-400-normal-a8be01ce.woff2
font ./_app/immutable/assets/fira-mono-latin-ext-400-normal-6bfabd30.woff2
font ./_app/immutable/assets/fira-mono-latin-400-normal-e43b3538.woff2
System Info
System:
OS: Linux 5.0 undefined
CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 0 Bytes / 0 Bytes
Shell: 1.0 - /bin/jsh
Binaries:
Node: 16.14.2 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 7.17.0 - /usr/local/bin/npm
npmPackages:
@sveltejs/adapter-auto: next => 1.0.0-next.90
@sveltejs/kit: next => 1.0.0-next.579
svelte: ^3.54.0 => 3.54.0
vite: ^4.0.0 => 4.0.0
Severity
annoyance
Additional Information
No response
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 1
- Comments: 19 (11 by maintainers)
Commits related to this issue
- fix: handle all options in sequence function preload and filterSerializedResponseHeaders fixes #8061 — committed to sveltejs/kit by dummdidumm a year ago
- fix: handle all options in sequence function (#9741) preload and filterSerializedResponseHeaders fixes #8061 — committed to sveltejs/kit by dummdidumm a year ago
- Update sveltekit.mdx This SvelteKit issue https://github.com/sveltejs/kit/issues/8061 has been fixed and the issue closed. — committed to eurlexa/supabase by eurlexa a year ago
- Update with-sveltekit.mdx This SvelteKit issue https://github.com/sveltejs/kit/issues/8061 has been fixed and the issue closed. — committed to eurlexa/supabase by eurlexa a year ago
Hi, any progress with this issue? I am using Supabase SvelteKit Auth helpers and they also warn us regarding this issue with
filterSerializedResponseHeadersnot working when using sequence.I’m having exact same issue and I can’t find a workaround for this.
I have a similar issue, also using Auth.js: https://github.com/sveltejs/kit/discussions/7027#discussioncomment-5094578
Wow! This is weird.
Locally, when I do
npm run buildandnpm run previewI do NOT see any console.log’s in my preload, and I do NOT see my font files being preloaded.But when deployed on Vercel I DO see my font files preloaded (did not go through the trouble of deploying those console.log statements, and then digging up Vercel’s logs).
@Rich-Harris are asset preloads handled differently by default on Vercel, vs a non-Vercel running of a prod build? I can’t imagine that they would, but somehow that’s what I’m seeing
Ah yep. Same is true for
filterSerializedResponseHeaders:https://github.com/sveltejs/kit/blob/1264ae53f8459c9001d6791bf78bed5336146585/packages/kit/src/exports/hooks/sequence.js#L24-L39