Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[breaking] add error.html #6367

Merged
merged 18 commits into from
Aug 30, 2022
Merged

[breaking] add error.html #6367

merged 18 commits into from
Aug 30, 2022

Conversation

dummdidumm
Copy link
Member

@dummdidumm dummdidumm commented Aug 29, 2022

Migration

kit.config.files.template has been renamed to kit.config.files.appTemplate to be more consistent with the new kit.config.files.errorTemplate option.

// svelte.config.js
const config = {
	kit: {
		files: {
-			template: 'src/app.html'
+			appTemplate: 'src/app.html'
		}
	}
};

PR description

This is a static error page that will be rendered by the server when everything else goes wrong
Closes #3068

Implementing this brought up some design questions around how dynamic the error page is. The places I added it previously showed the error message and possibly the stack trace in dev, which is no longer the case. Should we have something like an optional placeholder named %sveltekit.error% which is passed the stringified message, and in dev also the stack trace?

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

This is a static error page that will be rendered by the server when everything else goes wrong
Closes #3068
@changeset-bot
Copy link

changeset-bot bot commented Aug 29, 2022

🦋 Changeset detected

Latest commit: 2a3e2af

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

packages/kit/src/runtime/client/client.js Show resolved Hide resolved
export async function load() {
if (should_fail) {
set_should_fail(false);
throw new Error('Failed to load');
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is somewhat nasty, but the idea could also be reused to test the invalidate() bug I fixed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from the looks of it this could cause raciness if tests are running in parallel. not suggesting we change anything, just noting it so we know where to look if that starts happening

@Rich-Harris
Copy link
Member

We definitely need to include %sveltekit.status% and %sveltekit.message% (though I just remembered that sanitizing error messages in production is still a TODO). I think we should leave stack out of it since it'll always be printed to the terminal (in fact I think the same applies to normal errors — our error handling could use a bit of a tidy-up, separately to this PR)

Copy link
Member Author

@dummdidumm dummdidumm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made the error page dynamic with respect to status / message

packages/kit/src/core/config/index.js Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Thrown exceptions from __layout.svelte load result in plain text error responses
2 participants