floratmin/svelte-fragment-divider

Error because of `bind:value`

mojoaxel opened this issue · 0 comments

I get an error dividing the following simple svelte component. The error is caused by the bind shortcut bind:value.

minimal svelte component (Example.svelte)

<script>
	let value;
</script>

<div>
	<h3>Selected: {value}</h3>
	<select bind:value>
		<option value="light">Light</option>
		<option value="dark">Dark</option>
	</select>
</div>

Test-setup (divideSvelteFile.js)

import fs from 'fs';
import path from 'path';
import { svelteFragmentDivider } from '@floratmin/svelte-fragment-divider';

const fileName = './Example.svelte';
const svelteFile = fs.readFileSync(path.resolve(fileName), 'utf-8');
const fragments = svelteFragmentDivider(svelteFile, fileName);
console.log(fragments);

Running this script results in an error:

Error

> node ./divideSvelteFile.js

node_modules/@floratmin/svelte-fragment-divider/dist/divideFragments.js:97
        throw new Error(`${errors[0]}${fileName ? ` in file ${fileName}` : ''}\n${errors[1]}`);
              ^

Error: TypeError: Cannot read properties of undefined (reading 'start') in file ./Example.svelte
undefined
    at svelteJsParser (node_modules/@floratmin/svelte-fragment-divider/dist/divideFragments.js:97:15)
    at node_modules/@floratmin/svelte-fragment-divider/dist/divideFragments.js:78:98
    at Array.flatMap (<anonymous>)
    at svelteFragmentDivider (node_modules/@floratmin/svelte-fragment-divider/dist/divideFragments.js:78:76)
    at file:///build/divideSvelteFile.js:8:19
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)

Environment:

  • Node.js v18.13.0
  • @floratmin/svelte-fragment-divider@4.2.1