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

$inspect rune #9705

Merged
merged 51 commits into from
Nov 29, 2023
Merged

$inspect rune #9705

merged 51 commits into from
Nov 29, 2023

Conversation

Rich-Harris
Copy link
Member

@Rich-Harris Rich-Harris commented Nov 29, 2023

This builds on the brilliant ideas in #9670 but makes things simpler and more flexible. Instead of a predetermined set of options — $log, $log.trace, $log.break and $log.table — the $inspect rune is unopinionated. You bring your own logic.

This means that you can play klaxon.mp3 when something changes that shouldn't, or integrate with a third party monitoring library of some sort, or whatever exotic use case we can't yet imagine. Or you can do more prosaic things like debugger or console.trace, but without learning the Svelte idioms for doing so (and without the caveats around stack traces that $log necessitates).

In addition, the logging function is invoked when the signal is set, not when the effect runs after the signal is set. As a result, the call stack makes it easy to trace back through the sequence of function calls that culminated in the state change, rather than mostly through cryptic Svelte internals.

Note: Sourcemaps are currently a bit wonky. We're working on it!!

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
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests and linting

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

Copy link

changeset-bot bot commented Nov 29, 2023

🦋 Changeset detected

Latest commit: 4d7acbd

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

This PR includes changesets to release 1 package
Name Type
svelte 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

Copy link

vercel bot commented Nov 29, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
svelte-5-preview ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 29, 2023 5:44pm

@weepy
Copy link

weepy commented Dec 1, 2023

could this be used to create a logger that conditionally logged depending on the environment - I'm thinking of visionmedia's "debug" module here where you get fine grained logging depending on an environ variable (.e.g. localStorage.debug")

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.

5 participants