"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEnableRunes = isEnableRunes; exports.resolveSvelteParseContextForSvelte = resolveSvelteParseContextForSvelte; exports.resolveSvelteParseContextForSvelteScript = resolveSvelteParseContextForSvelteScript; const svelte_version_1 = require("./svelte-version"); function isEnableRunes(svelteConfig, parserOptions) { var _a, _b; if (!svelte_version_1.svelteVersion.gte(5)) return false; if (((_a = parserOptions.svelteFeatures) === null || _a === void 0 ? void 0 : _a.runes) != null) { return Boolean(parserOptions.svelteFeatures.runes); } if (((_b = svelteConfig === null || svelteConfig === void 0 ? void 0 : svelteConfig.compilerOptions) === null || _b === void 0 ? void 0 : _b.runes) != null) { return Boolean(svelteConfig.compilerOptions.runes); } return true; } function resolveSvelteParseContextForSvelte(svelteConfig, parserOptions, svelteAst) { const svelteOptions = svelteAst.options; if ((svelteOptions === null || svelteOptions === void 0 ? void 0 : svelteOptions.runes) != null) { return { runes: svelteOptions.runes, compilerVersion: svelte_version_1.compilerVersion, svelteConfig, }; } return { runes: isEnableRunes(svelteConfig, parserOptions), compilerVersion: svelte_version_1.compilerVersion, svelteConfig, }; } function resolveSvelteParseContextForSvelteScript(svelteConfig, parserOptions) { return resolveSvelteParseContext(svelteConfig, parserOptions); } function resolveSvelteParseContext(svelteConfig, parserOptions) { return { runes: isEnableRunes(svelteConfig, parserOptions), compilerVersion: svelte_version_1.compilerVersion, svelteConfig, }; }