diff --git a/packages/svelte2tsx/src/svelte2tsx/index.ts b/packages/svelte2tsx/src/svelte2tsx/index.ts index da6a31d69..d74b5fcec 100644 --- a/packages/svelte2tsx/src/svelte2tsx/index.ts +++ b/packages/svelte2tsx/src/svelte2tsx/index.ts @@ -372,7 +372,11 @@ export function svelte2tsx( processModuleScriptTag( str, moduleScriptTag, - new ImplicitStoreValues(implicitStoreValues.getAccessedStores(), renderFunctionStart) + new ImplicitStoreValues( + implicitStoreValues.getAccessedStores(), + renderFunctionStart, + scriptTag ? undefined : (input) => `;${input}<>` + ) ); } diff --git a/packages/svelte2tsx/src/svelte2tsx/nodes/ImplicitStoreValues.ts b/packages/svelte2tsx/src/svelte2tsx/nodes/ImplicitStoreValues.ts index 1474f5c46..443230c9a 100644 --- a/packages/svelte2tsx/src/svelte2tsx/nodes/ImplicitStoreValues.ts +++ b/packages/svelte2tsx/src/svelte2tsx/nodes/ImplicitStoreValues.ts @@ -21,7 +21,11 @@ export class ImplicitStoreValues { public addReactiveDeclaration = this.reactiveDeclarations.push.bind(this.reactiveDeclarations); public addImportStatement = this.importStatements.push.bind(this.importStatements); - constructor(storesResolvedInTemplate: string[] = [], private renderFunctionStart: number) { + constructor( + storesResolvedInTemplate: string[] = [], + private renderFunctionStart: number, + private storeFromImportsWrapper = (input: string) => input + ) { storesResolvedInTemplate.forEach(this.addStoreAcess); } @@ -103,8 +107,8 @@ export class ImplicitStoreValues { return; } - const storeDeclarations = surroundWithIgnoreComments( - this.createStoreDeclarations(storeNames) + const storeDeclarations = this.storeFromImportsWrapper( + surroundWithIgnoreComments(this.createStoreDeclarations(storeNames)) ); str.appendRight(this.renderFunctionStart, storeDeclarations); diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/expected.tsx new file mode 100644 index 000000000..6fec99a36 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/expected.tsx @@ -0,0 +1,13 @@ +/// +<>; + import { store1 } from './somewhere'; + const store2 = ''/*Ωignore_startΩ*/;let $store2 = __sveltets_1_store_get(store2);/*Ωignore_endΩ*/; +;<>;function render() { +<>;/*Ωignore_startΩ*/;let $store1 = __sveltets_1_store_get(store1);/*Ωignore_endΩ*/<> + +{(__sveltets_1_store_get(store1), $store1)} +{(__sveltets_1_store_get(store2), $store2)} +return { props: {}, slots: {}, getters: {}, events: {} }} + +export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) { +} \ No newline at end of file diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/input.svelte b/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/input.svelte new file mode 100644 index 000000000..50bc73924 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/$store-no-instance-only-module-script/input.svelte @@ -0,0 +1,7 @@ + + +{$store1} +{$store2}