UNPKG

@liip/esbuild-plugin-ast-vue

Version:

Esbuild plugin to parse Vue AST

60 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveTemplate = resolveTemplate; exports.getTemplateOptions = getTemplateOptions; const compiler_sfc_1 = require("@vue/compiler-sfc"); const convert_source_map_1 = require("convert-source-map"); const cache_1 = require("./cache"); const script_1 = require("./script"); function resolveTemplate({ filename, options = {}, isProd, }) { const descriptor = (0, cache_1.getDescriptorCache)(filename); const scopeId = (0, cache_1.getId)(filename); let { code, errors, map } = (0, compiler_sfc_1.compileTemplate)({ ...getTemplateOptions({ descriptor, options, isProd, scopeId }), id: scopeId, source: descriptor.template?.content || '', filename: descriptor.filename, }); if (map) { code += (0, convert_source_map_1.fromObject)(map).toComment(); } const convertedErrors = errors.map((e) => { if (typeof e === 'string') { return { text: e, }; } else { return { text: e.message, }; } }); return { code, errors: convertedErrors, }; } function getTemplateOptions({ descriptor, options, isProd, scopeId, }) { const block = descriptor.template; if (!block) { return; } const hasScoped = descriptor.styles.some((s) => s.scoped); const resolvedScript = script_1.scriptCache.get(descriptor); return { id: scopeId, scoped: hasScoped, isProd, filename: descriptor.filename, inMap: block.src ? undefined : block.map, compiler: options?.compiler, compilerOptions: { ...options?.compilerOptions, scopeId, bindingMetadata: resolvedScript ? resolvedScript.bindings : undefined, }, transformAssetUrls: options?.transformAssetUrls, }; } //# sourceMappingURL=template.js.map