@vue-jsx-vapor/macros 2.3.3 → 2.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/api.cjs +1 -1
  2. package/dist/api.d.cts +9 -6
  3. package/dist/api.d.ts +9 -6
  4. package/dist/api.js +1 -1
  5. package/dist/astro.cjs +4 -4
  6. package/dist/astro.d.cts +1 -1
  7. package/dist/astro.d.ts +1 -1
  8. package/dist/astro.js +4 -4
  9. package/dist/{core-CdPKEM79.cjs → core-C740HxiF.cjs} +36 -23
  10. package/dist/{core-B_EM_kTA.js → core-CHBxRAvb.js} +36 -23
  11. package/dist/esbuild.cjs +4 -4
  12. package/dist/esbuild.d.cts +1 -1
  13. package/dist/esbuild.d.ts +1 -1
  14. package/dist/esbuild.js +4 -4
  15. package/dist/index.cjs +4 -4
  16. package/dist/index.d.cts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +4 -4
  19. package/dist/nuxt.cjs +6 -6
  20. package/dist/nuxt.d.cts +1 -1
  21. package/dist/nuxt.d.ts +1 -1
  22. package/dist/nuxt.js +6 -6
  23. package/dist/{options-CNIhAQHD.cjs → options-BSX_vMxh.cjs} +8 -5
  24. package/dist/options-BWRkHmm5.js +23 -0
  25. package/dist/options.cjs +1 -1
  26. package/dist/options.d-CXMsJZSo.d.cts +37 -0
  27. package/dist/options.d-DNWXuL_g.d.ts +37 -0
  28. package/dist/options.d.cts +1 -1
  29. package/dist/options.d.ts +1 -1
  30. package/dist/options.js +1 -1
  31. package/dist/{raw-oJpqvj1N.cjs → raw-BXpT71mV.cjs} +2 -2
  32. package/dist/{raw-9H5vTeLe.js → raw-Hr7QYA0U.js} +2 -2
  33. package/dist/raw.cjs +3 -3
  34. package/dist/raw.d.cts +1 -1
  35. package/dist/raw.d.ts +1 -1
  36. package/dist/raw.js +3 -3
  37. package/dist/rolldown.cjs +4 -4
  38. package/dist/rolldown.d.cts +1 -1
  39. package/dist/rolldown.d.ts +1 -1
  40. package/dist/rolldown.js +4 -4
  41. package/dist/rollup.cjs +4 -4
  42. package/dist/rollup.d.cts +1 -1
  43. package/dist/rollup.d.ts +1 -1
  44. package/dist/rollup.js +4 -4
  45. package/dist/rspack.cjs +4 -4
  46. package/dist/rspack.d.cts +1 -1
  47. package/dist/rspack.d.ts +1 -1
  48. package/dist/rspack.js +4 -4
  49. package/dist/{src-CY9FOMwg.cjs → src-2EUAmvRo.cjs} +1 -1
  50. package/dist/{src-CjDaDFw_.js → src-BDMVJUXS.js} +1 -1
  51. package/dist/{vite-HbXTfQl_.js → vite-CS2vynmi.js} +1 -1
  52. package/dist/{vite-CtRiheet.cjs → vite-DP98E6od.cjs} +1 -1
  53. package/dist/vite.cjs +5 -5
  54. package/dist/vite.d.cts +1 -1
  55. package/dist/vite.d.ts +1 -1
  56. package/dist/vite.js +5 -5
  57. package/dist/volar.cjs +70 -57
  58. package/dist/volar.d.cts +1 -1
  59. package/dist/volar.d.ts +1 -1
  60. package/dist/volar.js +70 -57
  61. package/dist/{webpack-5inEmXrh.js → webpack-C78RZrII.js} +1 -1
  62. package/dist/{webpack-YO7qm0E9.cjs → webpack-qmJC3FBB.cjs} +1 -1
  63. package/dist/webpack.cjs +5 -5
  64. package/dist/webpack.d.cts +1 -1
  65. package/dist/webpack.d.ts +1 -1
  66. package/dist/webpack.js +5 -5
  67. package/package.json +1 -2
  68. package/dist/options-pbSvpKdV.js +0 -20
  69. package/dist/options.d-B3WOiT_L.d.cts +0 -26
  70. package/dist/options.d-DtyRfe-9.d.ts +0 -26
@@ -1,3 +1,3 @@
1
- import { Options, OptionsResolved, resolveOptions } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options, OptionsResolved, resolveOptions } from "./options.d-CXMsJZSo.cjs";
2
2
 
3
3
  export { Options, OptionsResolved, resolveOptions };
package/dist/options.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Options, OptionsResolved, resolveOptions$1 as resolveOptions } from "./options.d-DtyRfe-9.js";
1
+ import { Options, OptionsResolved, resolveOptions$1 as resolveOptions } from "./options.d-DNWXuL_g.js";
2
2
 
3
3
  export { Options, OptionsResolved, resolveOptions };
package/dist/options.js CHANGED
@@ -1,3 +1,3 @@
1
- import { resolveOptions } from "./options-pbSvpKdV.js";
1
+ import { resolveOptions } from "./options-BWRkHmm5.js";
2
2
 
3
3
  export { resolveOptions };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const require_chunk = require('./chunk-BCwAaXi7.cjs');
3
- const require_core = require('./core-CdPKEM79.cjs');
4
- const require_options = require('./options-CNIhAQHD.cjs');
3
+ const require_core = require('./core-C740HxiF.cjs');
4
+ const require_options = require('./options-BSX_vMxh.cjs');
5
5
  const __vue_macros_common = require_chunk.__toESM(require("@vue-macros/common"));
6
6
  const __vue_compiler_sfc = require_chunk.__toESM(require("@vue/compiler-sfc"));
7
7
 
@@ -1,5 +1,5 @@
1
- import { helperPrefix, transformJsxMacros, useModelHelperId, use_model_default, withDefaultsHelperId, with_defaults_default } from "./core-B_EM_kTA.js";
2
- import { resolveOptions } from "./options-pbSvpKdV.js";
1
+ import { helperPrefix, transformJsxMacros, useModelHelperId, use_model_default, withDefaultsHelperId, with_defaults_default } from "./core-CHBxRAvb.js";
2
+ import { resolveOptions } from "./options-BWRkHmm5.js";
3
3
  import { createFilter, normalizePath } from "@vue-macros/common";
4
4
  import { compileStyleAsync } from "@vue/compiler-sfc";
5
5
 
package/dist/raw.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
- require('./core-CdPKEM79.cjs');
3
- const require_raw = require('./raw-oJpqvj1N.cjs');
4
- require('./options-CNIhAQHD.cjs');
2
+ require('./core-C740HxiF.cjs');
3
+ const require_raw = require('./raw-BXpT71mV.cjs');
4
+ require('./options-BSX_vMxh.cjs');
5
5
 
6
6
  exports.default = require_raw.raw_default
package/dist/raw.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
  import { UnpluginOptions } from "unplugin";
3
3
 
4
4
  //#region src/raw.d.ts
package/dist/raw.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
  import { UnpluginOptions } from "unplugin";
3
3
 
4
4
  //#region src/raw.d.ts
package/dist/raw.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./core-B_EM_kTA.js";
2
- import { raw_default } from "./raw-9H5vTeLe.js";
3
- import "./options-pbSvpKdV.js";
1
+ import "./core-CHBxRAvb.js";
2
+ import { raw_default } from "./raw-Hr7QYA0U.js";
3
+ import "./options-BWRkHmm5.js";
4
4
 
5
5
  export { raw_default as default };
package/dist/rolldown.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, '__esModule', { value: true });
3
- require('./core-CdPKEM79.cjs');
4
- require('./raw-oJpqvj1N.cjs');
5
- require('./options-CNIhAQHD.cjs');
6
- const require_src = require('./src-CY9FOMwg.cjs');
3
+ require('./core-C740HxiF.cjs');
4
+ require('./raw-BXpT71mV.cjs');
5
+ require('./options-BSX_vMxh.cjs');
6
+ const require_src = require('./src-2EUAmvRo.cjs');
7
7
 
8
8
  //#region src/rolldown.ts
9
9
  var rolldown_default = require_src.src_default.rolldown;
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
 
3
3
  //#region src/rolldown.d.ts
4
4
  declare const _default: (options?: Options | undefined) => any;
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
 
3
3
  //#region src/rolldown.d.ts
4
4
  declare const _default: (options?: Options | undefined) => any;
package/dist/rolldown.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./core-B_EM_kTA.js";
2
- import "./raw-9H5vTeLe.js";
3
- import "./options-pbSvpKdV.js";
4
- import { src_default } from "./src-CjDaDFw_.js";
1
+ import "./core-CHBxRAvb.js";
2
+ import "./raw-Hr7QYA0U.js";
3
+ import "./options-BWRkHmm5.js";
4
+ import { src_default } from "./src-BDMVJUXS.js";
5
5
 
6
6
  //#region src/rolldown.ts
7
7
  var rolldown_default = src_default.rolldown;
package/dist/rollup.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, '__esModule', { value: true });
3
- require('./core-CdPKEM79.cjs');
4
- require('./raw-oJpqvj1N.cjs');
5
- require('./options-CNIhAQHD.cjs');
6
- const require_src = require('./src-CY9FOMwg.cjs');
3
+ require('./core-C740HxiF.cjs');
4
+ require('./raw-BXpT71mV.cjs');
5
+ require('./options-BSX_vMxh.cjs');
6
+ const require_src = require('./src-2EUAmvRo.cjs');
7
7
 
8
8
  //#region src/rollup.ts
9
9
  var rollup_default = require_src.src_default.rollup;
package/dist/rollup.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
  import { Plugin } from "rollup";
3
3
 
4
4
  //#region src/rollup.d.ts
package/dist/rollup.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
  import { Plugin } from "rollup";
3
3
 
4
4
  //#region src/rollup.d.ts
package/dist/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./core-B_EM_kTA.js";
2
- import "./raw-9H5vTeLe.js";
3
- import "./options-pbSvpKdV.js";
4
- import { src_default } from "./src-CjDaDFw_.js";
1
+ import "./core-CHBxRAvb.js";
2
+ import "./raw-Hr7QYA0U.js";
3
+ import "./options-BWRkHmm5.js";
4
+ import { src_default } from "./src-BDMVJUXS.js";
5
5
 
6
6
  //#region src/rollup.ts
7
7
  var rollup_default = src_default.rollup;
package/dist/rspack.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, '__esModule', { value: true });
3
- require('./core-CdPKEM79.cjs');
4
- require('./raw-oJpqvj1N.cjs');
5
- require('./options-CNIhAQHD.cjs');
6
- const require_src = require('./src-CY9FOMwg.cjs');
3
+ require('./core-C740HxiF.cjs');
4
+ require('./raw-BXpT71mV.cjs');
5
+ require('./options-BSX_vMxh.cjs');
6
+ const require_src = require('./src-2EUAmvRo.cjs');
7
7
 
8
8
  //#region src/rspack.ts
9
9
  var rspack_default = require_src.src_default.rspack;
package/dist/rspack.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
 
3
3
  //#region src/rspack.d.ts
4
4
  declare const _default: (options?: Options | undefined) => RspackPluginInstance;
package/dist/rspack.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
 
3
3
  //#region src/rspack.d.ts
4
4
  declare const _default: (options?: Options | undefined) => RspackPluginInstance;
package/dist/rspack.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./core-B_EM_kTA.js";
2
- import "./raw-9H5vTeLe.js";
3
- import "./options-pbSvpKdV.js";
4
- import { src_default } from "./src-CjDaDFw_.js";
1
+ import "./core-CHBxRAvb.js";
2
+ import "./raw-Hr7QYA0U.js";
3
+ import "./options-BWRkHmm5.js";
4
+ import { src_default } from "./src-BDMVJUXS.js";
5
5
 
6
6
  //#region src/rspack.ts
7
7
  var rspack_default = src_default.rspack;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const require_chunk = require('./chunk-BCwAaXi7.cjs');
3
- const require_raw = require('./raw-oJpqvj1N.cjs');
3
+ const require_raw = require('./raw-BXpT71mV.cjs');
4
4
  const unplugin = require_chunk.__toESM(require("unplugin"));
5
5
 
6
6
  //#region src/index.ts
@@ -1,4 +1,4 @@
1
- import { raw_default } from "./raw-9H5vTeLe.js";
1
+ import { raw_default } from "./raw-Hr7QYA0U.js";
2
2
  import { createUnplugin } from "unplugin";
3
3
 
4
4
  //#region src/index.ts
@@ -1,4 +1,4 @@
1
- import { src_default } from "./src-CjDaDFw_.js";
1
+ import { src_default } from "./src-BDMVJUXS.js";
2
2
 
3
3
  //#region src/vite.ts
4
4
  var vite_default = src_default.vite;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_src = require('./src-CY9FOMwg.cjs');
2
+ const require_src = require('./src-2EUAmvRo.cjs');
3
3
 
4
4
  //#region src/vite.ts
5
5
  var vite_default = require_src.src_default.vite;
package/dist/vite.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
- require('./core-CdPKEM79.cjs');
3
- require('./raw-oJpqvj1N.cjs');
4
- require('./options-CNIhAQHD.cjs');
5
- require('./src-CY9FOMwg.cjs');
6
- const require_vite = require('./vite-CtRiheet.cjs');
2
+ require('./core-C740HxiF.cjs');
3
+ require('./raw-BXpT71mV.cjs');
4
+ require('./options-BSX_vMxh.cjs');
5
+ require('./src-2EUAmvRo.cjs');
6
+ const require_vite = require('./vite-DP98E6od.cjs');
7
7
 
8
8
  exports.default = require_vite.vite_default
package/dist/vite.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
  import { Plugin } from "vite";
3
3
 
4
4
  //#region src/vite.d.ts
package/dist/vite.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
  import { Plugin } from "vite";
3
3
 
4
4
  //#region src/vite.d.ts
package/dist/vite.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./core-B_EM_kTA.js";
2
- import "./raw-9H5vTeLe.js";
3
- import "./options-pbSvpKdV.js";
4
- import "./src-CjDaDFw_.js";
5
- import { vite_default } from "./vite-HbXTfQl_.js";
1
+ import "./core-CHBxRAvb.js";
2
+ import "./raw-Hr7QYA0U.js";
3
+ import "./options-BWRkHmm5.js";
4
+ import "./src-BDMVJUXS.js";
5
+ import { vite_default } from "./vite-CS2vynmi.js";
6
6
 
7
7
  export { vite_default as default };
package/dist/volar.cjs CHANGED
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, '__esModule', { value: true });
3
3
  const require_chunk = require('./chunk-BCwAaXi7.cjs');
4
- const require_options = require('./options-CNIhAQHD.cjs');
4
+ const require_options = require('./options-BSX_vMxh.cjs');
5
5
  const __vue_macros_common = require_chunk.__toESM(require("@vue-macros/common"));
6
6
  const ts_macro = require_chunk.__toESM(require("ts-macro"));
7
- const __vue_language_core_lib_codegen_style_classProperty_js = require_chunk.__toESM(require("@vue/language-core/lib/codegen/style/classProperty.js"));
8
- const __vue_language_core_lib_utils_parseCssClassNames_js = require_chunk.__toESM(require("@vue/language-core/lib/utils/parseCssClassNames.js"));
9
7
 
10
8
  //#region src/volar/define-component.ts
11
9
  function transformDefineComponent(node, parent, options) {
@@ -27,16 +25,10 @@ function transformDefineComponent(node, parent, options) {
27
25
 
28
26
  //#endregion
29
27
  //#region src/volar/define-style.ts
30
- function transformDefineStyle(defineStyles, options) {
31
- if (!defineStyles?.length) return;
28
+ function transformDefineStyle({ expression, isCssModules }, index, options) {
32
29
  const { ts, codes, ast } = options;
33
- defineStyles.forEach(({ expression, isCssModules }, index) => {
34
- if (isCssModules && expression?.arguments[0] && !expression.typeArguments && ts.isTemplateLiteral(expression.arguments[0])) (0, ts_macro.replaceRange)(codes, expression.arguments.pos - 1, expression.arguments.pos - 1, `<${__vue_macros_common.HELPER_PREFIX}PrettifyLocal<{}`, ...generateCssClassesType(expression.arguments[0].getText(ast).slice(1, -1), expression.arguments[0].getStart(ast) + 1, index), ">>");
35
- addEmbeddedCode(expression, index, options);
36
- });
37
- }
38
- function* generateCssClassesType(css, offset, index) {
39
- for (const className of [...(0, __vue_language_core_lib_utils_parseCssClassNames_js.parseCssClassNames)(css)]) yield* (0, __vue_language_core_lib_codegen_style_classProperty_js.generateClassProperty)(index, className.text, className.offset + offset, "string");
30
+ if (isCssModules && expression?.arguments[0] && !expression.typeArguments && ts.isTemplateLiteral(expression.arguments[0])) (0, ts_macro.replaceRange)(codes, expression.arguments.pos - 1, expression.arguments.pos - 1, `<{`, ...parseCssClassNames(expression.arguments[0].getText(ast).slice(1, -1)).map(({ text }) => `\n'${text.slice(1)}': string`), "\n}>");
31
+ addEmbeddedCode(expression, index, options);
40
32
  }
41
33
  function addEmbeddedCode(expression, index, options) {
42
34
  const { ts, ast } = options;
@@ -67,16 +59,33 @@ function addEmbeddedCode(expression, index, options) {
67
59
  embeddedCodes: []
68
60
  });
69
61
  }
62
+ const commentReg = /(?<=\/\*)[\s\S]*?(?=\*\/)|(?<=\/\/)[\s\S]*?(?=\n)/g;
63
+ const cssClassNameReg = /(?=(\.[a-z_][-\w]*)[\s.,+~>:#)[{])/gi;
64
+ const fragmentReg = /(?<=\{)[^{]*(?=(?<!\\);)/g;
65
+ function parseCssClassNames(css) {
66
+ for (const reg of [commentReg, fragmentReg]) css = css.replace(reg, (match) => " ".repeat(match.length));
67
+ const matches = css.matchAll(cssClassNameReg);
68
+ const result = [];
69
+ for (const match of matches) {
70
+ const matchText = match[1];
71
+ if (matchText) result.push({
72
+ offset: match.index,
73
+ text: matchText
74
+ });
75
+ }
76
+ return result;
77
+ }
70
78
 
71
79
  //#endregion
72
80
  //#region src/volar/transform.ts
73
81
  function transformJsxMacros(rootMap, options) {
74
82
  const { ts, codes, ast } = options;
75
- for (const [root, map] of rootMap) {
76
- transformDefineStyle(map.defineStyle, options);
83
+ let defineStyleIndex = 0;
84
+ for (const [root, macros] of rootMap) {
85
+ macros.defineStyle?.forEach((defaultStyle) => transformDefineStyle(defaultStyle, defineStyleIndex++, options));
77
86
  if (!root?.body) continue;
78
87
  const asyncModifier = root.modifiers?.find((modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword);
79
- if (asyncModifier && map.defineComponent) (0, ts_macro.replaceRange)(codes, asyncModifier.pos, asyncModifier.end);
88
+ if (asyncModifier && macros.defineComponent) (0, ts_macro.replaceRange)(codes, asyncModifier.pos, asyncModifier.end);
80
89
  const result = `({}) as __VLS_PickNotAny<typeof ${__vue_macros_common.HELPER_PREFIX}ctx.render, {}> & { __ctx: typeof ${__vue_macros_common.HELPER_PREFIX}ctx }`;
81
90
  const propsType = root.parameters[0]?.type ? String(root.parameters[0].type.getText(ast)) : "{}";
82
91
  (0, ts_macro.replaceRange)(codes, root.parameters.pos, root.parameters.pos, ts.isArrowFunction(root) && root.parameters.pos === root.pos ? "(" : "", `${__vue_macros_common.HELPER_PREFIX}props: typeof ${__vue_macros_common.HELPER_PREFIX}ctx.props & ${propsType}, `, `${__vue_macros_common.HELPER_PREFIX}placeholder?: {}, `, `${__vue_macros_common.HELPER_PREFIX}ctx = {} as Awaited<ReturnType<typeof ${__vue_macros_common.HELPER_PREFIX}setup>>, `, `${__vue_macros_common.HELPER_PREFIX}setup = (${asyncModifier ? "async" : ""}(`);
@@ -87,16 +96,16 @@ function transformJsxMacros(rootMap, options) {
87
96
  }
88
97
  ts.forEachChild(root.body, (node) => {
89
98
  if (ts.isReturnStatement(node) && node.expression) {
90
- const props = [...map.defineModel ?? []];
99
+ const props = [...macros.defineModel ?? []];
91
100
  const elements = root.parameters[0] && !root.parameters[0].type && ts.isObjectBindingPattern(root.parameters[0].name) ? root.parameters[0].name.elements : [];
92
101
  for (const element of elements) if (ts.isIdentifier(element.name)) props.push(`${element.name.escapedText}${element.initializer && ts.isNonNullExpression(element.initializer) ? ":" : "?:"} typeof ${element.name.escapedText}`);
93
- const shouldWrapByCall = (ts.isArrowFunction(node.expression) || ts.isFunctionExpression(node.expression)) && map.defineComponent;
102
+ const shouldWrapByCall = (ts.isArrowFunction(node.expression) || ts.isFunctionExpression(node.expression)) && macros.defineComponent;
94
103
  (0, ts_macro.replaceRange)(codes, node.getStart(ast), node.expression.getStart(ast), `const ${__vue_macros_common.HELPER_PREFIX}render = `, shouldWrapByCall ? "(" : "");
95
104
  (0, ts_macro.replaceRange)(codes, node.expression.end, node.expression.end, shouldWrapByCall ? ")()" : "", `
96
105
  return {
97
106
  props: {} as {${props.join(", ")}},
98
- slots: {} as ${map.defineSlots ?? "{}"},
99
- expose: (exposed: import('vue').ShallowUnwrapRef<${map.defineExpose ?? "{}"}>) => {},
107
+ slots: {} as ${macros.defineSlots ?? "{}"},
108
+ expose: (exposed: import('vue').ShallowUnwrapRef<${macros.defineExpose ?? "{}"}>) => {},
100
109
  render: ${__vue_macros_common.HELPER_PREFIX}render,
101
110
  }`);
102
111
  }
@@ -118,7 +127,6 @@ ${defineSlots}
118
127
  ${defineExpose}
119
128
  ${defineStyle}
120
129
  type ${__vue_macros_common.HELPER_PREFIX}StyleArgs = [style: string, options?: { scoped?: boolean }];
121
- type ${__vue_macros_common.HELPER_PREFIX}PrettifyLocal<T> = { [K in keyof T]: T[K]; } & {};
122
130
  // @ts-ignore
123
131
  type __VLS_IsAny<T> = 0 extends 1 & T ? true : false; type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
124
132
  `;
@@ -165,11 +173,6 @@ function getRootMap(options) {
165
173
  const { ts, ast, codes } = options;
166
174
  const rootMap = new Map();
167
175
  function walk(node, parents) {
168
- ts.forEachChild(node, (child) => {
169
- parents.unshift(node);
170
- walk(child, parents);
171
- parents.shift();
172
- });
173
176
  const root = parents[1] && (ts.isArrowFunction(parents[1]) || ts.isFunctionExpression(parents[1]) || ts.isFunctionDeclaration(parents[1])) ? parents[1] : void 0;
174
177
  if (root && parents[2] && ts.isCallExpression(parents[2]) && !parents[2].typeArguments && options.defineComponent.alias.includes(parents[2].expression.getText(ast))) {
175
178
  if (!rootMap.has(root)) rootMap.set(root, {});
@@ -179,40 +182,50 @@ function getRootMap(options) {
179
182
  }
180
183
  }
181
184
  const macro = getMacro(node, ts, options);
182
- if (!macro) return;
183
- const { expression, initializer } = macro;
184
- let isRequired = macro.isRequired;
185
- if (!rootMap.has(root)) rootMap.set(root, {});
186
- const macroName = expression.expression.getText(ast);
187
- if (macroName.startsWith("defineStyle")) (rootMap.get(root).defineStyle ??= []).push({
188
- expression,
189
- isCssModules: !!ts.isVariableStatement(node)
190
- });
191
- if (!root) return;
192
- if (options.defineModel.alias.includes(macroName)) {
193
- const modelName = expression.arguments[0] && ts.isStringLiteralLike(expression.arguments[0]) ? expression.arguments[0].text : "modelValue";
194
- const modelOptions = expression.arguments[0] && ts.isStringLiteralLike(expression.arguments[0]) ? expression.arguments[1] : expression.arguments[0];
195
- if (modelOptions && ts.isObjectLiteralExpression(modelOptions)) {
196
- let hasRequired = false;
197
- for (const prop of modelOptions.properties) if (ts.isPropertyAssignment(prop) && prop.name.getText(ast) === "required") {
198
- hasRequired = true;
199
- isRequired = prop.initializer.kind === ts.SyntaxKind.TrueKeyword;
185
+ if (macro) {
186
+ const { expression, initializer } = macro;
187
+ let isRequired = macro.isRequired;
188
+ if (!rootMap.has(root)) rootMap.set(root, {});
189
+ const macroName = expression.expression.getText(ast);
190
+ if (macroName.startsWith("defineStyle")) {
191
+ (rootMap.get(root).defineStyle ??= []).push({
192
+ expression,
193
+ isCssModules: ts.isVariableStatement(node)
194
+ });
195
+ return;
196
+ }
197
+ if (root) {
198
+ if (options.defineModel.alias.includes(macroName)) {
199
+ const modelName = expression.arguments[0] && ts.isStringLiteralLike(expression.arguments[0]) ? expression.arguments[0].text : "modelValue";
200
+ const modelOptions = expression.arguments[0] && ts.isStringLiteralLike(expression.arguments[0]) ? expression.arguments[1] : expression.arguments[0];
201
+ if (modelOptions && ts.isObjectLiteralExpression(modelOptions)) {
202
+ let hasRequired = false;
203
+ for (const prop of modelOptions.properties) if (ts.isPropertyAssignment(prop) && prop.name.getText(ast) === "required") {
204
+ hasRequired = true;
205
+ isRequired = prop.initializer.kind === ts.SyntaxKind.TrueKeyword;
206
+ }
207
+ if (!hasRequired && isRequired) (0, ts_macro.replaceRange)(codes, modelOptions.end - 1, modelOptions.end - 1, `${!modelOptions.properties.hasTrailingComma && modelOptions.properties.length ? "," : ""} required: true`);
208
+ } else if (isRequired) (0, ts_macro.replaceRange)(codes, expression.arguments.end, expression.arguments.end, `${!expression.arguments.hasTrailingComma && expression.arguments.length ? "," : ""} { required: true }`);
209
+ const id = toValidAssetId(modelName, `${__vue_macros_common.HELPER_PREFIX}model`);
210
+ const typeString = `import('vue').UnwrapRef<typeof ${id}>`;
211
+ const defineModel = rootMap.get(root).defineModel ??= [];
212
+ defineModel.push(`${modelName.includes("-") ? `'${modelName}'` : modelName}${isRequired ? ":" : "?:"} ${typeString}`, `'onUpdate:${modelName}'?: ($event: ${typeString}) => any`);
213
+ if (expression.typeArguments?.[1]) defineModel.push(`${modelName}Modifiers?: Partial<Record<${expression.typeArguments[1].getText(ast)}, boolean>>`);
214
+ if (ts.isVariableStatement(node)) (0, ts_macro.replaceRange)(codes, initializer.getStart(ast), initializer.getStart(ast), `// @ts-ignore\n${id};\nlet ${id} = `);
215
+ } else if (options.defineSlots.alias.includes(macroName)) {
216
+ (0, ts_macro.replaceRange)(codes, expression.getStart(ast), expression.getStart(ast), `// @ts-ignore\n${__vue_macros_common.HELPER_PREFIX}slots;\nconst ${__vue_macros_common.HELPER_PREFIX}slots = `);
217
+ rootMap.get(root).defineSlots = `Partial<typeof ${__vue_macros_common.HELPER_PREFIX}slots>`;
218
+ } else if (options.defineExpose.alias.includes(macroName)) {
219
+ (0, ts_macro.replaceRange)(codes, expression.getStart(ast), expression.getStart(ast), `// @ts-ignore\n${__vue_macros_common.HELPER_PREFIX}exposed;\nconst ${__vue_macros_common.HELPER_PREFIX}exposed = `);
220
+ rootMap.get(root).defineExpose = `typeof ${__vue_macros_common.HELPER_PREFIX}exposed`;
200
221
  }
201
- if (!hasRequired && isRequired) (0, ts_macro.replaceRange)(codes, modelOptions.end - 1, modelOptions.end - 1, `${!modelOptions.properties.hasTrailingComma && modelOptions.properties.length ? "," : ""} required: true`);
202
- } else if (isRequired) (0, ts_macro.replaceRange)(codes, expression.arguments.end, expression.arguments.end, `${!expression.arguments.hasTrailingComma && expression.arguments.length ? "," : ""} { required: true }`);
203
- const id = toValidAssetId(modelName, `${__vue_macros_common.HELPER_PREFIX}model`);
204
- const typeString = `import('vue').UnwrapRef<typeof ${id}>`;
205
- const defineModel = rootMap.get(root).defineModel ??= [];
206
- defineModel.push(`${modelName.includes("-") ? `'${modelName}'` : modelName}${isRequired ? ":" : "?:"} ${typeString}`, `'onUpdate:${modelName}'?: ($event: ${typeString}) => any`);
207
- if (expression.typeArguments?.[1]) defineModel.push(`${modelName}Modifiers?: Partial<Record<${expression.typeArguments[1].getText(ast)}, boolean>>`);
208
- (0, ts_macro.replaceRange)(codes, initializer.getStart(ast), initializer.getStart(ast), `// @ts-ignore\n${id};\nlet ${id} = `);
209
- } else if (options.defineSlots.alias.includes(macroName)) {
210
- (0, ts_macro.replaceRange)(codes, expression.getStart(ast), expression.getStart(ast), `// @ts-ignore\n${__vue_macros_common.HELPER_PREFIX}slots;\nconst ${__vue_macros_common.HELPER_PREFIX}slots = `);
211
- rootMap.get(root).defineSlots = `Partial<typeof ${__vue_macros_common.HELPER_PREFIX}slots>`;
212
- } else if (options.defineExpose.alias.includes(macroName)) {
213
- (0, ts_macro.replaceRange)(codes, expression.getStart(ast), expression.getStart(ast), `// @ts-ignore\n${__vue_macros_common.HELPER_PREFIX}exposed;\nconst ${__vue_macros_common.HELPER_PREFIX}exposed = `);
214
- rootMap.get(root).defineExpose = `typeof ${__vue_macros_common.HELPER_PREFIX}exposed`;
222
+ }
215
223
  }
224
+ ts.forEachChild(node, (child) => {
225
+ parents.unshift(node);
226
+ walk(child, parents);
227
+ parents.shift();
228
+ });
216
229
  }
217
230
  ts.forEachChild(ast, (node) => walk(node, []));
218
231
  return rootMap;
package/dist/volar.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-B3WOiT_L.cjs";
1
+ import { Options } from "./options.d-CXMsJZSo.cjs";
2
2
  import { PluginReturn } from "ts-macro";
3
3
 
4
4
  //#region src/volar.d.ts
package/dist/volar.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Options } from "./options.d-DtyRfe-9.js";
1
+ import { Options } from "./options.d-DNWXuL_g.js";
2
2
  import { PluginReturn } from "ts-macro";
3
3
 
4
4
  //#region src/volar.d.ts