版博士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-OYTCDAHI.js 1.4 KiB

пре 1 година
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/core/index.ts
  2. var _common = require('@vue-macros/common');
  3. var _compilerdom = require('@vue/compiler-dom');
  4. function transformSetupBlock(code, id, lang) {
  5. const s = new (0, _common.MagicString)(code);
  6. const node = _compilerdom.parse.call(void 0, code, {
  7. // there are no components at SFC parsing level
  8. isNativeTag: () => true,
  9. // preserve all whitespaces
  10. isPreTag: () => true,
  11. getTextMode: ({ tag, props }, parent) => {
  12. if (!parent && tag !== "template" || // <template lang="xxx"> should also be treated as raw text
  13. tag === "template" && props.some(
  14. (p) => p.type === 6 && p.name === "lang" && p.value && p.value.content && p.value.content !== "html"
  15. )) {
  16. return 2;
  17. } else {
  18. return 0;
  19. }
  20. }
  21. });
  22. for (const child of node.children) {
  23. if (child.type === 1 && child.tag === "setup") {
  24. const hasLang = child.props.some((p) => p.name === "lang");
  25. let codegen = "script setup";
  26. if (!hasLang && lang) {
  27. codegen += ` lang="${lang}"`;
  28. }
  29. s.overwrite(
  30. child.loc.start.offset + 1,
  31. child.loc.start.offset + 6,
  32. codegen
  33. );
  34. s.overwrite(
  35. child.loc.end.offset - 6,
  36. child.loc.end.offset - 1,
  37. "script"
  38. );
  39. }
  40. }
  41. return _common.getTransformResult.call(void 0, s, id);
  42. }
  43. exports.transformSetupBlock = transformSetupBlock;