版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

chunk-QMDVCJ6Y.mjs 672 B

12345678910111213141516171819202122232425262728
  1. // src/core/index.ts
  2. import {
  3. DEFINE_SLOTS,
  4. MagicString,
  5. getTransformResult,
  6. isCallOf,
  7. parseSFC
  8. } from "@vue-macros/common";
  9. function transformDefineSlots(code, id) {
  10. if (!code.includes(DEFINE_SLOTS))
  11. return;
  12. const { scriptSetup, getSetupAst } = parseSFC(code, id);
  13. if (!scriptSetup)
  14. return;
  15. const s = new MagicString(code);
  16. for (const stmt of getSetupAst().body) {
  17. if (stmt.type === "ExpressionStatement" && isCallOf(stmt.expression, DEFINE_SLOTS)) {
  18. s.overwriteNode(stmt, "/*defineSlots*/", {
  19. offset: scriptSetup.loc.start.offset
  20. });
  21. }
  22. }
  23. return getTransformResult(s, id);
  24. }
  25. export {
  26. transformDefineSlots
  27. };