-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
feat: allow runes in POJO properties #15593
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: main
Are you sure you want to change the base?
Conversation
|
🦋 Changeset detectedLatest commit: 1b0918c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
I think |
If wrapping is needed, then there's a simpler solution using closures, using the currently available Svelte features. |
I have two examples that I would use this in the real world, and would love to see this happen! Thanks for your work on it @Ocean-OS! Sveltekit-Superforms ScenarioI has creating a wrapper function around the function newSuperForm(form, formOptions) {
const newForm = superForm(form, formOptions)
return {
...newForm,
open: $state(false),
}
} As this syntax isn't avaliable atm, I'm making due with this. function newSuperForm(form, formOptions) {
const newForm = superForm(form, formOptions)
return {
...newForm,
get open() {
return open
},
set open(newOpen) {
open = newOpen
}
}
} Passing values as
|
This is currently an experiment to see how well runes could work as properties in POJOs. This is similar to #11210, but much more seamless. This would enable explicit fine-grained reactivity in objects, without proxying them. Here's an example:
This would get compiled to an IIFE, returning something like this:
Before submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.packages/svelte/src
, add a changeset (npx changeset
).Tests and linting
pnpm test
and lint the project withpnpm lint