版博士V2.0程序
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. // src/index.ts
  2. import { createCombinePlugin } from "unplugin-combine";
  3. import VueBetterDefine from "@vue-macros/better-define";
  4. import VueDefineModel from "@vue-macros/define-model";
  5. import VueDefineOptions from "unplugin-vue-define-options";
  6. import VueDefineProps from "@vue-macros/define-props";
  7. import VueDefinePropsRefs from "@vue-macros/define-props-refs";
  8. import VueDefineRender from "@vue-macros/define-render";
  9. import VueDefineSlots from "@vue-macros/define-slots";
  10. import VueExportProps from "@vue-macros/export-props";
  11. import VueHoistStatic from "@vue-macros/hoist-static";
  12. import VueNamedTemplate from "@vue-macros/named-template";
  13. import VueReactivityTransform from "@vue-macros/reactivity-transform";
  14. import VueSetupBlock from "@vue-macros/setup-block";
  15. import VueSetupComponent from "@vue-macros/setup-component";
  16. import VueSetupSFC from "@vue-macros/setup-sfc";
  17. import VueShortEmits from "@vue-macros/short-emits";
  18. import VueSingleDefine from "@vue-macros/single-define";
  19. import { detectVueVersion } from "@vue-macros/common";
  20. import { Devtools } from "@vue-macros/devtools";
  21. function resolveOptions({
  22. root,
  23. version,
  24. plugins,
  25. isProduction,
  26. nuxtContext,
  27. betterDefine,
  28. defineModel,
  29. defineOptions,
  30. defineProps,
  31. definePropsRefs,
  32. defineRender,
  33. defineSlots,
  34. exportProps,
  35. hoistStatic,
  36. namedTemplate,
  37. reactivityTransform,
  38. setupBlock,
  39. setupComponent,
  40. setupSFC,
  41. shortEmits,
  42. singleDefine
  43. }) {
  44. function resolveSubOptions(options, commonOptions, defaultEnabled = true) {
  45. options = options ?? defaultEnabled;
  46. if (!options)
  47. return false;
  48. return { ...options === true ? {} : options, ...commonOptions };
  49. }
  50. root = root || process.cwd();
  51. version = version || detectVueVersion(root);
  52. isProduction = isProduction ?? process.env.NODE_ENV === "production";
  53. return {
  54. plugins: plugins || {},
  55. root,
  56. version,
  57. isProduction,
  58. nuxtContext: nuxtContext || {},
  59. betterDefine: resolveSubOptions(betterDefine, {
  60. version,
  61. isProduction
  62. }),
  63. defineModel: resolveSubOptions(defineModel, { version }),
  64. defineOptions: resolveSubOptions(defineOptions, {
  65. version
  66. }),
  67. defineProps: resolveSubOptions(defineProps, { version }),
  68. definePropsRefs: resolveSubOptions(definePropsRefs, {
  69. version
  70. }),
  71. defineRender: resolveSubOptions(defineRender, { version }),
  72. defineSlots: resolveSubOptions(defineSlots, { version }),
  73. exportProps: resolveSubOptions(exportProps, { version }),
  74. hoistStatic: resolveSubOptions(hoistStatic, { version }),
  75. namedTemplate: resolveSubOptions(namedTemplate, {
  76. version
  77. }),
  78. reactivityTransform: resolveSubOptions(
  79. reactivityTransform,
  80. { version }
  81. ),
  82. setupBlock: resolveSubOptions(setupBlock, { version }, false),
  83. setupComponent: resolveSubOptions(setupComponent, {
  84. version,
  85. root
  86. }),
  87. setupSFC: resolveSubOptions(setupSFC, { version }),
  88. shortEmits: resolveSubOptions(shortEmits, { version }),
  89. singleDefine: resolveSubOptions(singleDefine, {
  90. isProduction,
  91. version
  92. })
  93. };
  94. }
  95. function resolvePlugin(unplugin, framework, options) {
  96. if (!options)
  97. return;
  98. return unplugin[framework](options);
  99. }
  100. var name = "unplugin-vue-macros";
  101. var src_default = createCombinePlugin(
  102. (userOptions = {}, meta) => {
  103. const options = resolveOptions(userOptions);
  104. const framework = meta.framework;
  105. const setupComponentPlugins = resolvePlugin(
  106. VueSetupComponent,
  107. framework,
  108. options.setupComponent
  109. );
  110. const namedTemplatePlugins = resolvePlugin(
  111. VueNamedTemplate,
  112. framework,
  113. options.namedTemplate
  114. );
  115. const plugins = [
  116. resolvePlugin(VueSetupSFC, framework, options.setupSFC),
  117. setupComponentPlugins == null ? void 0 : setupComponentPlugins[0],
  118. resolvePlugin(VueSetupBlock, framework, options.setupBlock),
  119. namedTemplatePlugins == null ? void 0 : namedTemplatePlugins[0],
  120. resolvePlugin(VueSingleDefine, framework, options.singleDefine),
  121. resolvePlugin(VueDefineProps, framework, options.defineProps),
  122. resolvePlugin(VueDefinePropsRefs, framework, options.definePropsRefs),
  123. resolvePlugin(VueExportProps, framework, options.exportProps),
  124. resolvePlugin(VueShortEmits, framework, options.shortEmits),
  125. resolvePlugin(VueDefineModel, framework, options.defineModel),
  126. resolvePlugin(VueDefineSlots, framework, options.defineSlots),
  127. resolvePlugin(
  128. VueReactivityTransform,
  129. framework,
  130. options.reactivityTransform
  131. ),
  132. resolvePlugin(VueBetterDefine, framework, options.betterDefine),
  133. resolvePlugin(VueHoistStatic, framework, options.hoistStatic),
  134. resolvePlugin(VueDefineOptions, framework, options.defineOptions),
  135. options.plugins.vue,
  136. options.plugins.vueJsx,
  137. resolvePlugin(VueDefineRender, framework, options.defineRender),
  138. setupComponentPlugins == null ? void 0 : setupComponentPlugins[1],
  139. namedTemplatePlugins == null ? void 0 : namedTemplatePlugins[1],
  140. framework === "vite" ? Devtools({ nuxtContext: options.nuxtContext }) : void 0
  141. ].filter(Boolean);
  142. return {
  143. name,
  144. plugins
  145. };
  146. }
  147. );
  148. export {
  149. src_default
  150. };