版博士V2.0程序
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

40 líneas
1.1 KiB

  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/core/index.ts
  2. var _common = require('@vue-macros/common');
  3. function transformSetupSFC(code, id) {
  4. const lang = _common.getLang.call(void 0, id);
  5. const program = _common.babelParse.call(void 0, code, lang);
  6. const s = new (0, _common.MagicString)(code);
  7. for (const stmt of program.body) {
  8. if (stmt.type !== "ExportDefaultDeclaration")
  9. continue;
  10. s.append(`defineRender(${s.sliceNode(stmt.declaration)});`);
  11. s.removeNode(stmt);
  12. }
  13. const attrs = `${lang ? ` lang="${lang}"` : ""}`;
  14. s.prepend(`<script setup${attrs}>`);
  15. s.append(`</script>`);
  16. return _common.getTransformResult.call(void 0, s, id);
  17. }
  18. function hotUpdateSetupSFC({ modules }, filter) {
  19. function isSubModule(id) {
  20. const [filename, query] = id.split("?");
  21. if (!query)
  22. return false;
  23. if (!filter(filename))
  24. return false;
  25. return true;
  26. }
  27. const affectedModules = modules.filter((mod) => mod.id && isSubModule(mod.id));
  28. return affectedModules;
  29. }
  30. exports.transformSetupSFC = transformSetupSFC; exports.hotUpdateSetupSFC = hotUpdateSetupSFC;