From d58403bf94753b5c98014402cd7e239f14cd1efd Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Fri, 10 Feb 2023 12:05:02 +0100 Subject: [PATCH 1/2] fix: warn when preload fails closes #8301 --- .changeset/loud-comics-stare.md | 5 +++++ packages/kit/src/runtime/client/client.js | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .changeset/loud-comics-stare.md diff --git a/.changeset/loud-comics-stare.md b/.changeset/loud-comics-stare.md new file mode 100644 index 000000000000..d5df7b169874 --- /dev/null +++ b/.changeset/loud-comics-stare.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: warn after failed prefetches in dev diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index bcf81c2b7a75..8eccbf479aa7 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -1256,7 +1256,22 @@ export function create_client({ target }) { if (!options.reload) { if (priority <= options.preload_data) { const intent = get_navigation_intent(/** @type {URL} */ (url), false); - if (intent) preload_data(intent); + if (intent) { + if (__SVELTEKIT_DEV__) { + preload_data(intent).then((result) => { + if (result.type === 'loaded' && result.state.error) { + console.warn( + `Prefetching data for ${intent.url.pathname} failed with the following error: ${result.state.error.message}\n` + + 'If this error is transient, you can ignore it. Otherwise, consider disabling prefetching for this route. ' + + 'This route was prefetched due to a data-sveltekit-data attribute. ' + + 'See https://kit.svelte.dev/docs/link-options for more info' + ); + } + }); + } else { + preload_data(intent); + } + } } else if (priority <= options.preload_code) { preload_code(get_url_path(/** @type {URL} */ (url))); } From 04e7262cd3facf4d2838234554d3aef17a8bfd92 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 10 Feb 2023 12:31:46 -0500 Subject: [PATCH 2/2] Apply suggestions from code review --- .changeset/loud-comics-stare.md | 2 +- packages/kit/src/runtime/client/client.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.changeset/loud-comics-stare.md b/.changeset/loud-comics-stare.md index d5df7b169874..d917da64292c 100644 --- a/.changeset/loud-comics-stare.md +++ b/.changeset/loud-comics-stare.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -fix: warn after failed prefetches in dev +fix: warn after failed data preloads in dev diff --git a/packages/kit/src/runtime/client/client.js b/packages/kit/src/runtime/client/client.js index 8eccbf479aa7..aef957d74f19 100644 --- a/packages/kit/src/runtime/client/client.js +++ b/packages/kit/src/runtime/client/client.js @@ -1261,9 +1261,9 @@ export function create_client({ target }) { preload_data(intent).then((result) => { if (result.type === 'loaded' && result.state.error) { console.warn( - `Prefetching data for ${intent.url.pathname} failed with the following error: ${result.state.error.message}\n` + - 'If this error is transient, you can ignore it. Otherwise, consider disabling prefetching for this route. ' + - 'This route was prefetched due to a data-sveltekit-data attribute. ' + + `Preloading data for ${intent.url.pathname} failed with the following error: ${result.state.error.message}\n` + + 'If this error is transient, you can ignore it. Otherwise, consider disabling preloading for this route. ' + + 'This route was preloaded due to a data-sveltekit-preload-data attribute. ' + 'See https://kit.svelte.dev/docs/link-options for more info' ); }