UNPKG

@vue-jsx-vapor/babel

Version:
80 lines (77 loc) 2.98 kB
//#region rolldown:runtime var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion const require_utils = require('./utils-B3bAMlp-.cjs'); const __babel_parser = __toESM(require("@babel/parser")); const __vue_jsx_vapor_compiler = __toESM(require("@vue-jsx-vapor/compiler")); const ast_kit = __toESM(require("ast-kit")); const source_map_js = __toESM(require("source-map-js")); //#region src/transform.ts const transformJSX = (path, state) => { if (require_utils.isJSXElement(path.parent)) return; const root = state.roots.shift(); if (!root || !root.inVaporComponent) return; const isTS = state.filename?.endsWith("tsx"); const { code, map, helpers, templates, delegates } = (0, __vue_jsx_vapor_compiler.compile)(root.node, { isTS, filename: state.filename, sourceMap: !!state.file.opts.sourceMaps, source: " ".repeat(root.node.start || 0) + root.source, templates: state.templates.slice(), ...state.opts.compile }); helpers.forEach((helper) => state.importSet.add(helper)); delegates.forEach((delegate) => state.delegateEventSet.add(delegate)); state.templates.push(...templates.slice(state.templates.length)); const ast = (0, __babel_parser.parse)(`(() => {${code}})()`, { sourceFilename: state.filename, plugins: isTS ? ["jsx", "typescript"] : ["jsx"] }); if (map) { const consumer = new source_map_js.SourceMapConsumer(map); (0, ast_kit.walkAST)(ast, { enter(id) { if ((id.type === "Identifier" || id.type === "JSXIdentifier") && id.loc) { const originalLoc = consumer.originalPositionFor(id.loc.start); if (originalLoc.column) { id.loc.start.line = originalLoc.line; id.loc.start.column = originalLoc.column; id.loc.end.line = originalLoc.line; id.loc.end.column = originalLoc.column + id.name.length; } } } }); } path.replaceWith(ast.program.body[0]); }; //#endregion Object.defineProperty(exports, '__toESM', { enumerable: true, get: function () { return __toESM; } }); Object.defineProperty(exports, 'transformJSX', { enumerable: true, get: function () { return transformJSX; } });