Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(fix) generic support for component getter and accessor #1689

Merged
merged 7 commits into from Oct 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion packages/svelte2tsx/src/svelte2tsx/createRenderFunction.ts
Expand Up @@ -116,7 +116,6 @@ export function createRenderFunction({
const returnString =
`\nreturn { props: ${exportedNames.createPropsStr(isTsFile)}` +
`, slots: ${slotsAsDef}` +
`, getters: ${exportedNames.createRenderFunctionGetterStr()}` +
`, events: ${events.toDefString()} }}`;

// wrap template with callback
Expand Down
9 changes: 2 additions & 7 deletions packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts
Expand Up @@ -195,15 +195,10 @@ export class ExportedNames {

createClassGetters(): string {
return Array.from(this.getters)
.map((name) => `\n get ${name}() { return render().getters.${name} }`)
.map((name) => `\n get ${name}() { return this.$$prop_def.${name} }`)
.join('');
}

createRenderFunctionGetterStr(): string {
const properties = Array.from(this.getters).map((name) => `${name}: ${name}`);
return `{${properties.join(', ')}}`;
}

createClassAccessors(): string {
const accessors: string[] = [];
for (const value of this.exports.values()) {
Expand All @@ -217,7 +212,7 @@ export class ExportedNames {
return accessors
.map(
(name) =>
`\n get ${name}() { return render().props.${name} }` +
`\n get ${name}() { return this.$$prop_def.${name} }` +
`\n /**accessor*/\n set ${name}(_) {}`
)
.join('');
Expand Down
Expand Up @@ -67,7 +67,7 @@
/></>↲ [generated] line 24
/> [original] line 22
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -58,7 +58,7 @@
{
{/await} [original] line 13
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -37,7 +37,7 @@
/></>↲ [generated] line 19
/> [original] line 17
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -98,7 +98,7 @@
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
<p>No tasks today!</p>
</>
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -57,7 +57,7 @@
/></>↲ [generated] line 27
/> [original] line 25
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -15,7 +15,7 @@
<button•on: ={$check•?•method1•:•method2}•>Bla</button>
<button•on:click={$check•?•method1•:•method2}•>Bla</button> [original] line 2
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -55,7 +55,7 @@
{
{/if} [original] line 13
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -24,7 +24,7 @@
</script> [original] line 4
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
() => (<></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -478,7 +478,7 @@ s
</div></>);↲ [generated] line 182
</div> [original] line 319
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {slug: slug , chapter: chapter}, slots: {}, getters: {}, events: {} }}
return { props: {slug: slug , chapter: chapter}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -24,7 +24,7 @@
</script> [original] line 3
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
() => (<></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -7,7 +7,7 @@
<button• {count}>button</button>
<button•{count}>button</button> [original] line 1
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -46,7 +46,7 @@
</script> [original] line 7
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
() => (<></>);
return { props: {prop: prop}, slots: {}, getters: {}, events: {} }}
return { props: {prop: prop}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -51,7 +51,7 @@
{
{/if} [original] line 13
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial_with_any(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -7,7 +7,7 @@
<h1>Hello•World</h1>
<h1>Hello•World</h1> [original] line 1
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -17,7 +17,7 @@
</Component>
</Component> [original] line 3
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -36,7 +36,7 @@
</slot></>↲ [generated] line 14
</slot> [original] line 11
------------------------------------------------------------------------------------------------------------------------------------------------------ */}
return { props: {}, slots: {'default': {}, 'foo': {}, 'bar': {foo:foo, baz:baz}}, getters: {}, events: {} }}
return { props: {}, slots: {'default': {}, 'foo': {}, 'bar': {foo:foo, baz:baz}}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -17,7 +17,7 @@
{...__sveltets_1_ensureAnimation($animateStore(__sveltets_1_mapElementTag('div'),__sveltets_1_AnimationMove,{}))}
>
</div></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -11,7 +11,7 @@ async () => {

{const $$action_0 = __sveltets_2_ensureAction($actionStore(svelteHTML.mapElementTag('div')));{ svelteHTML.createElement("div", __sveltets_2_union($$action_0), { });__sveltets_2_ensureTransition($transitionStore(svelteHTML.mapElementTag('div'),({ y: 100 })));__sveltets_2_ensureTransition($inStore(svelteHTML.mapElementTag('div')));__sveltets_2_ensureTransition($outStore(svelteHTML.mapElementTag('div')));__sveltets_2_ensureAnimation($animateStore(svelteHTML.mapElementTag('div'),__sveltets_2_AnimationMove));
}}};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -23,7 +23,7 @@
$store.b = false;
;
() => (<></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -23,7 +23,7 @@
$store.b = false;
;
async () => {};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -3,7 +3,7 @@
<>{someRecordOrArr[$store]}
{someObject['$store']}
{someObject.$store}</>
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -3,7 +3,7 @@
async () => {someRecordOrArr[$store];
someObject['$store'];
someObject.$store;};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -27,7 +27,7 @@
$store1
;
() => (<></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -27,7 +27,7 @@
$store1
;
async () => {};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -7,7 +7,7 @@

{$store1}
{$store2}</>
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -7,7 +7,7 @@ async () => {/*Ωignore_startΩ*/;let $store1 = __sveltets_1_store_get(store1);/

$store1;
$store2;};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -6,7 +6,7 @@
const bar = { $store: $store };
;
() => (<></>);
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -6,7 +6,7 @@
const bar = { $store: $store };
;
async () => {};
return { props: {}, slots: {}, getters: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(__sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -5,7 +5,7 @@
;
() => (<><svelteoptions accessors={false} />
</>);
return { props: {foo: foo}, slots: {}, getters: {}, events: {} }}
return { props: {foo: foo}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(['foo'], __sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -5,7 +5,7 @@
;
async () => { { svelteHTML.createElement("svelte:options", { "accessors":false,});}
};
return { props: {foo: foo}, slots: {}, getters: {}, events: {} }}
return { props: {foo: foo}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(['foo'], __sveltets_1_with_any_event(render()))) {
}
Expand Up @@ -4,10 +4,10 @@
let foo: number = undefined/*Ωignore_startΩ*/;foo = __sveltets_1_any(foo);/*Ωignore_endΩ*/;
;
() => (<></>);
return { props: {foo: foo}, slots: {}, getters: {}, events: {} }}
return { props: {foo: foo}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(['foo'], __sveltets_1_with_any_event(render()))) {
get foo() { return render().props.foo }
get foo() { return this.$$prop_def.foo }
/**accessor*/
set foo(_) {}
}
Expand Up @@ -4,10 +4,10 @@
let foo: number = undefined/*Ωignore_startΩ*/;foo = __sveltets_1_any(foo);/*Ωignore_endΩ*/;
;
async () => {};
return { props: {foo: foo}, slots: {}, getters: {}, events: {} }}
return { props: {foo: foo}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_1_createSvelte2TsxComponent(__sveltets_1_partial(['foo'], __sveltets_1_with_any_event(render()))) {
get foo() { return render().props.foo }
get foo() { return this.$$prop_def.foo }
/**accessor*/
set foo(_) {}
}