```js
// @noErrors
import {
VERSION,
compile,
compileModule,
migrate,
parse,
preprocess,
walk
} from 'svelte/compiler';
```
## VERSION
The current version, as set in package.json.
```dts
const VERSION: string;
```
## compile
`compile` converts your `.svelte` source code into a JavaScript module that exports a component
```dts
function compile(
source: string,
options: CompileOptions
): CompileResult;
```
## compileModule
`compileModule` takes your JavaScript source code containing runes, and turns it into a JavaScript module.
```dts
function compileModule(
source: string,
options: ModuleCompileOptions
): CompileResult;
```
## migrate
Does a best-effort migration of Svelte code towards using runes, event attributes and render tags.
May throw an error if the code is too complex to migrate automatically.
```dts
function migrate(
source: string,
{
filename,
use_ts
}?:
| {
filename?: string;
use_ts?: boolean;
}
| undefined
): {
code: string;
};
```
## parse
The parse function parses a component, returning only its abstract syntax tree.
The `modern` option (`false` by default in Svelte 5) makes the parser return a modern AST instead of the legacy AST.
`modern` will become `true` by default in Svelte 6, and the option will be removed in Svelte 7.
```dts
function parse(
source: string,
options: {
filename?: string;
modern: true;
loose?: boolean;
}
): AST.Root;
```
```dts
function parse(
source: string,
options?:
| {
filename?: string;
modern?: false;
loose?: boolean;
}
| undefined
): Record;
```
## preprocess
The preprocess function provides convenient hooks for arbitrarily transforming component source code.
For example, it can be used to convert a `