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: Remove hash from url passed to load #4983

Conversation

elliott-with-the-longest-name-on-github
Copy link
Contributor

Fixes #4788. More specifically, this sets the hash of the url passed to load to the empty string, unifying the client- and server-side behavior. See the linked issue for discussion around why this is important.

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

@changeset-bot
Copy link

changeset-bot bot commented May 18, 2022

🦋 Changeset detected

Latest commit: e78f953

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

@Rich-Harris
Copy link
Member

Nice, thank you! Thinking aloud: I wonder if we should return a Proxy from get url that errors if you try to access url.hash (in bother server and client contexts, I suppose) so that people aren't confused about why it's empty?

@elliott-with-the-longest-name-on-github
Copy link
Contributor Author

Nice, thank you! Thinking aloud: I wonder if we should return a Proxy from get url that errors if you try to access url.hash (in bother server and client contexts, I suppose) so that people aren't confused about why it's empty?

Wow, I don't know how I've gone this long without seeing a JavaScript Proxy object. That's pretty awesome. Give me five...

@elliott-with-the-longest-name-on-github
Copy link
Contributor Author

@Rich-Harris

Updated both the behavior and the test. I had to wrap the test in javaScriptEnabled, because obviously load can't run client-side when JavaScript is disabled.

As a sidenote, maybe I'm going crazy, but I may have uncovered a new bug while working on this. In order to separate concerns a bit, I was trying to create a __error.svelte file in src/routes/load. When I created it and caused an error in the load of src/routes/load/url-hash by trying to access url.hash, I could only get src/routes/__error.svelte to render, no matter what I did. You might try replicating on your end to see if it's just something silly I was doing.

@Rich-Harris Rich-Harris changed the title fix: Remove hash from url passed to load breaking: Remove hash from url passed to load May 20, 2022
@Rich-Harris Rich-Harris merged commit d934124 into sveltejs:master May 20, 2022
@Rich-Harris
Copy link
Member

thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

hash is present in the URL passed to load
2 participants