Skip to content

Commit cf0c592

Browse files
authored
(fix) handle $store shorthand prop assignment (#1322)
#1321
1 parent f528aaa commit cf0c592

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

packages/svelte2tsx/src/svelte2tsx/processInstanceScriptContent.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,12 @@ export function processInstanceScriptContent(
170170
// - in order to get ts errors if store is not assignable to SvelteStore
171171
// - use $store variable defined above to get ts flow control
172172
const dollar = str.original.indexOf('$', ident.getStart() + astOffset);
173-
const getPrefix = isSafeToPrefixWithSemicolon(ident) ? ';' : '';
173+
const getPrefix = isSafeToPrefixWithSemicolon(ident)
174+
? ';'
175+
: ts.isShorthandPropertyAssignment(parent)
176+
? // { $store } --> { $store: __sveltets_1_store_get(..)}
177+
ident.text + ': '
178+
: '';
174179
str.overwrite(dollar, dollar + 1, getPrefix + '(__sveltets_1_store_get(');
175180
str.prependLeft(ident.end + astOffset, `), $${storename})`);
176181
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
///<reference types="svelte" />
2+
<></>;function render() {
3+
4+
let store = null/*Ωignore_startΩ*/;let $store = __sveltets_1_store_get(store);/*Ωignore_endΩ*/;
5+
const foo = { $store: (__sveltets_1_store_get(store), $store) };
6+
const bar = { $store: (__sveltets_1_store_get(store), $store) };
7+
;
8+
() => (<></>);
9+
return { props: {}, slots: {}, getters: {}, events: {} }}
10+
11+
export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
12+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script lang="ts">
2+
let store = null;
3+
const foo = { $store };
4+
const bar = { $store: $store };
5+
</script>

0 commit comments

Comments
 (0)