JSPM

svelte2tsx

0.1.25
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 218135
  • Score
    100M100P100Q165670F
  • License MIT

Convert Svelte components to TSX for type checking

Package Exports

  • svelte2tsx

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (svelte2tsx) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

svelte2tsx

Converts Svelte component source into TSX. The TSX can be type checked using the included svelte-jsx.d.ts and svelte-shims.d.ts.

This project only converts svelte to tsx, type checking is left to consumers of this plugin such as language services

type SvelteCompiledToTsx = {
    code: string;
    map: import('magic-string').SourceMap;
};

export default function svelte2tsx(svelte: string): SvelteCompiledToTsx;

For example

Input.svelte

<h1>hello {world}</h1>
<script>
    export let world = "name"
</script>

will produce this ugly but type checkable TSX

<></>;
function render() {
    let world = 'name';
    <>
        <h1>hello {world}</h1>
    </>;
    return { props: { world }, slots: {} };
}

export default class {
    $$prop_def = __sveltets_partial(render().props);
    $$slot_def = render().slots;
}

with a v3 SourceMap back to the original source.

For more examples of the transformations, see the test/**/samples folders

Credits