diff --git a/packages/svelte2tsx/src/utils/htmlxparser.ts b/packages/svelte2tsx/src/utils/htmlxparser.ts index 844593744..38ae98fbe 100644 --- a/packages/svelte2tsx/src/utils/htmlxparser.ts +++ b/packages/svelte2tsx/src/utils/htmlxparser.ts @@ -82,13 +82,15 @@ function blankVerbatimContent(htmlx: string, verbatimElements: Node[]) { for (const node of verbatimElements) { const content = node.content; if (content) { - output = htmlx.substring(0, content.start) + - htmlx.substring(content.start, content.end) - // blank out the content - .replace(/[^\n]/g, ' ') - // excess blank space can make the svelte parser very slow (sec->min). break it up with comments (works in style/script) - .replace(/[^\n][^\n][^\n][^\n]\n/g, '/**/\n') + - htmlx.substring(content.end); + output = + output.substring(0, content.start) + + output + .substring(content.start, content.end) + // blank out the content + .replace(/[^\n]/g, ' ') + // excess blank space can make the svelte parser very slow (sec->min). break it up with comments (works in style/script) + .replace(/[^\n][^\n][^\n][^\n]\n/g, '/**/\n') + + output.substring(content.end); } } return output; diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/expected.tsx b/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/expected.tsx new file mode 100644 index 000000000..6efe85f43 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/expected.tsx @@ -0,0 +1,11 @@ +/// +<>;function render() { + + let foo:string; +; +() => (<> +); +return { props: {foo: foo} as {foo: string}, slots: {}, getters: {}, events: {} }} + +export default class Input__SvelteComponent_ extends createSvelte2TsxComponent(__sveltets_partial(__sveltets_with_any_event(render))) { +} \ No newline at end of file diff --git a/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/input.svelte b/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/input.svelte new file mode 100644 index 000000000..dbd35a8b3 --- /dev/null +++ b/packages/svelte2tsx/test/svelte2tsx/samples/ts-style-and-script/input.svelte @@ -0,0 +1,8 @@ + +