@vue-macros/volar
Version:
Volar plugin for Vue Macros.
50 lines (47 loc) • 1.14 kB
JavaScript
import {
getStart
} from "./chunk-DCLIBDVT.js";
// src/export-render.ts
import { createFilter } from "@vue-macros/common";
import { replaceSourceRange } from "muggle-string";
function transform(options) {
const { codes, sfc, ts } = options;
for (const stmt of sfc.scriptSetup.ast.statements) {
if (!ts.isExportAssignment(stmt)) continue;
replaceSourceRange(
codes,
"scriptSetup",
getStart(stmt, options),
getStart(stmt.expression, options),
"defineRender("
);
replaceSourceRange(
codes,
"scriptSetup",
stmt.expression.end,
stmt.expression.end,
")"
);
}
}
var plugin = (ctx, options = {}) => {
if (!options) return [];
const filter = createFilter(options);
return {
name: "vue-macros-export-render",
version: 2.1,
resolveEmbeddedCode(fileName, sfc, embeddedFile) {
if (!filter(fileName) || !sfc.scriptSetup?.ast) return;
transform({
codes: embeddedFile.content,
sfc,
ts: ctx.modules.typescript
});
}
};
};
var export_render_default = plugin;
export {
plugin,
export_render_default
};