Skip to content

Commit fbb9496

Browse files
authored
fix store set in reactive statement (#380)
1 parent c55114b commit fbb9496

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

packages/svelte2tsx/src/svelte2tsx.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,11 @@ function processInstanceScriptContent(str: MagicString, script: Node): InstanceS
770770
ts.isIdentifier(node.statement.expression.left)
771771
) {
772772
const name = node.statement.expression.left.text;
773-
if (!implicitTopLevelNames.has(name)) {
773+
774+
// svelte won't let you create a variable with $ prefix anyway
775+
const isPotentialStore = name.startsWith('$');
776+
777+
if (!implicitTopLevelNames.has(name) && !isPotentialStore) {
774778
implicitTopLevelNames.set(name, node.label.getStart());
775779
}
776780

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<></>;function render() {
2+
3+
$: store.set( __sveltets_invalidate(() => __sveltets_store_get(store) + 1));
4+
;
5+
() => (<></>);
6+
return { props: {}, slots: {}, getters: {}, events: {} }}
7+
8+
export default class Input__SvelteComponent_ {
9+
$$prop_def = __sveltets_partial(render().props)
10+
$$slot_def = render().slots
11+
$on = __sveltets_eventDef(render().events)
12+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
$: $store = $store + 1;
3+
</script>

0 commit comments

Comments
 (0)