; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.parseTemplate = parseTemplate; | |
const compiler_1 = require("svelte/compiler"); | |
const index_1 = require("./converts/index"); | |
const __1 = require(".."); | |
const svelte_version_1 = require("./svelte-version"); | |
/** | |
* Parse for template | |
*/ | |
function parseTemplate(code, ctx, parserOptions) { | |
try { | |
const options = Object.assign({ filename: parserOptions.filePath }, (svelte_version_1.svelteVersion.gte(5) ? { modern: true } : {})); | |
const svelteAst = (0, compiler_1.parse)(code, options); | |
const ast = (0, index_1.convertSvelteRoot)(svelteAst, ctx); | |
return { | |
ast, | |
svelteAst, | |
}; | |
} | |
catch (e) { | |
if (typeof e.pos === "number") { | |
const err = new __1.ParseError(e.message, e.pos, ctx); | |
err.svelteCompilerError = e; | |
throw err; | |
} | |
throw e; | |
} | |
} | |