-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: support migration of
svelte:component
(#13437)
* feat: allow migration of `svelte:component` * chore: simplify a lot (thanks @dummdidumm) * chore: update output * chore: use `next()` and `snip` instead of walking the AST * fix: migrate nested `svelte:component` * Update .changeset/good-vans-bake.md --------- Co-authored-by: Simon H <[email protected]>
- Loading branch information
1 parent
33ee958
commit b665425
Showing
7 changed files
with
356 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'svelte': patch | ||
--- | ||
|
||
feat: support migration of `svelte:component` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
125 changes: 125 additions & 0 deletions
125
packages/svelte/tests/migrate/samples/svelte-component/input.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
<script> | ||
let Component; | ||
let fallback; | ||
</script> | ||
|
||
<Component let:Comp> | ||
<svelte:component this={Comp} /> | ||
</Component> | ||
|
||
<Component let:comp> | ||
<svelte:component this={comp} /> | ||
</Component> | ||
|
||
<Component let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</Component> | ||
|
||
<Component> | ||
<div slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</div> | ||
</Component> | ||
|
||
<Component> | ||
<svelte:fragment slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</svelte:fragment> | ||
</Component> | ||
|
||
<Component> | ||
<svelte:element this={"div"} slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</svelte:element> | ||
</Component> | ||
|
||
<svelte:component this={Component} let:Comp> | ||
<svelte:component this={Comp} /> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component} let:comp> | ||
<svelte:component this={comp} /> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component} let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component}> | ||
<div slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</div> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component}> | ||
<svelte:fragment slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</svelte:fragment> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component}> | ||
<svelte:element this={"div"} slot="x" let:comp={stuff}> | ||
<svelte:component this={stuff} /> | ||
</svelte:element> | ||
</svelte:component> | ||
|
||
<svelte:component this={Component} /> | ||
<svelte:component this={Component} prop value="" on:click on:click={()=>''} /> | ||
<svelte:component this={Math.random() > .5 ? $$restProps.heads : $$restProps.tail} prop value="" on:click on:click={()=>''}/> | ||
|
||
<svelte:component | ||
this={Component} | ||
prop value="" | ||
on:click | ||
on:click={()=>''} | ||
/> | ||
|
||
<svelte:component | ||
this={Math.random() > .5 ? $$restProps.heads : $$restProps.tail} | ||
prop value="" | ||
on:click | ||
on:click={()=>''} | ||
/> | ||
|
||
{#if true} | ||
{@const x = {Component}} | ||
<svelte:component this={x['Component']} /> | ||
{/if} | ||
|
||
{#if true} | ||
{@const x = {Component}} | ||
<svelte:component this={x.Component} /> | ||
{/if} | ||
|
||
{#each [] as component} | ||
<svelte:component this={component} /> | ||
{/each} | ||
|
||
{#each [] as Component} | ||
<svelte:component this={Component} /> | ||
{/each} | ||
|
||
{#each [] as component} | ||
{@const Comp = component.component} | ||
<svelte:component this={Comp} /> | ||
{/each} | ||
|
||
{#each [] as component} | ||
{@const comp = component.component} | ||
<svelte:component this={comp} /> | ||
{/each} | ||
|
||
{#await Promise.resolve()} | ||
<svelte:component this={Component} /> | ||
<svelte:component this={fallback} /> | ||
{:then something} | ||
<svelte:component this={something} /> | ||
{:catch e} | ||
<svelte:component this={e} /> | ||
{/await} | ||
|
||
{#await Promise.resolve() then Something} | ||
<svelte:component this={Something} /> | ||
{:catch Error} | ||
<svelte:component this={Error} /> | ||
{/await} |
Oops, something went wrong.