What is the problem this feature would solve?
Currently there are @effect/atom-react, @effect/atom-solid, and @effect/atom-vue packages, but no equivalent for Svelte.
What is the feature you are proposing to solve the problem?
A new @effect/atom-svelte package which is analogous to the @effect/atom-react, @effect/atom-solid, and @effect/atom-vue packages.
The easiest implementation would be to use the createSubscriber function from svelte/reactivity, which was introduced in Svelte v5.7.0. This bypasses having to use Svelte 5's runes feature and appears to be intended for exactly this kind of integration. This would not require a .svelte.ts file, and could be implemented as plain TypeScript.
There may also be opportunities to integrate with Svelte's Context feature. Perhaps the createContext function?
What alternatives have you considered?
This would not be difficult to implement as a third party package, but obviously it would be preferable to have a first-party @effect/atom-svelte package.
Note: I previously opened a PR for an @effect/atom-svelte package in the Effect-TS/effect-smol repository before it way merged into this one.
What is the problem this feature would solve?
Currently there are
@effect/atom-react,@effect/atom-solid, and@effect/atom-vuepackages, but no equivalent for Svelte.What is the feature you are proposing to solve the problem?
A new
@effect/atom-sveltepackage which is analogous to the@effect/atom-react,@effect/atom-solid, and@effect/atom-vuepackages.The easiest implementation would be to use the
createSubscriberfunction fromsvelte/reactivity, which was introduced in Svelte v5.7.0. This bypasses having to use Svelte 5's runes feature and appears to be intended for exactly this kind of integration. This would not require a.svelte.tsfile, and could be implemented as plain TypeScript.There may also be opportunities to integrate with Svelte's Context feature. Perhaps the
createContextfunction?What alternatives have you considered?
This would not be difficult to implement as a third party package, but obviously it would be preferable to have a first-party
@effect/atom-sveltepackage.Note: I previously opened a PR for an
@effect/atom-sveltepackage in the Effect-TS/effect-smol repository before it way merged into this one.