vue-component-meta 2.2.4 → 2.2.8

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 (2) hide show
  1. package/lib/base.js +31 -6
  2. package/package.json +4 -4
package/lib/base.js CHANGED
@@ -566,10 +566,10 @@ function readVueComponentDefaultProps(root, printer, ts) {
566
566
  scriptWorker();
567
567
  return result;
568
568
  function scriptSetupWorker() {
569
- const ast = sfc.scriptSetup?.ast;
570
- if (!ast) {
569
+ if (!sfc.scriptSetup) {
571
570
  return;
572
571
  }
572
+ const { ast } = sfc.scriptSetup;
573
573
  const codegen = vue.tsCodegen.get(sfc);
574
574
  const scriptSetupRanges = codegen?.getScriptSetupRanges();
575
575
  if (scriptSetupRanges?.withDefaults?.argNode) {
@@ -597,10 +597,21 @@ function readVueComponentDefaultProps(root, printer, ts) {
597
597
  }
598
598
  }
599
599
  else if (scriptSetupRanges?.defineProps?.destructured) {
600
- for (const [prop, initializer] of scriptSetupRanges.defineProps.destructured) {
600
+ for (const [name, initializer] of scriptSetupRanges.defineProps.destructured) {
601
601
  if (initializer) {
602
602
  const expText = printer?.printNode(ts.EmitHint.Expression, initializer, ast) ?? initializer.getText(ast);
603
- result[prop] = { default: expText };
603
+ result[name] = {
604
+ default: expText
605
+ };
606
+ }
607
+ }
608
+ }
609
+ if (scriptSetupRanges?.defineProp) {
610
+ for (const defineProp of scriptSetupRanges.defineProp) {
611
+ const obj = defineProp.argNode ? findObjectLiteralExpression(defineProp.argNode) : undefined;
612
+ if (obj) {
613
+ const name = defineProp.name ? sfc.scriptSetup.content.slice(defineProp.name.start, defineProp.name.end).slice(1, -1) : 'modelValue';
614
+ result[name] = resolveModelOption(ast, obj, printer, ts);
604
615
  }
605
616
  }
606
617
  }
@@ -618,10 +629,10 @@ function readVueComponentDefaultProps(root, printer, ts) {
618
629
  }
619
630
  }
620
631
  function scriptWorker() {
621
- const ast = sfc.script?.ast;
622
- if (!ast) {
632
+ if (!sfc.script) {
623
633
  return;
624
634
  }
635
+ const { ast } = sfc.script;
625
636
  const scriptResult = readTsComponentDefaultProps(ast, 'default', printer, ts);
626
637
  for (const [key, value] of Object.entries(scriptResult)) {
627
638
  result[key] = value;
@@ -709,6 +720,20 @@ function resolvePropsOption(ast, props, printer, ts) {
709
720
  }
710
721
  return result;
711
722
  }
723
+ function resolveModelOption(ast, options, printer, ts) {
724
+ const result = {};
725
+ for (const prop of options.properties) {
726
+ if (ts.isPropertyAssignment(prop)) {
727
+ const name = prop.name.getText(ast);
728
+ if (name === 'default') {
729
+ const expNode = resolveDefaultOptionExpression(prop.initializer, ts);
730
+ const expText = printer?.printNode(ts.EmitHint.Expression, expNode, ast) ?? expNode.getText(ast);
731
+ result.default = expText;
732
+ }
733
+ }
734
+ }
735
+ return result;
736
+ }
712
737
  function resolveDefaultOptionExpression(_default, ts) {
713
738
  if (ts.isArrowFunction(_default)) {
714
739
  if (ts.isBlock(_default.body)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-component-meta",
3
- "version": "2.2.4",
3
+ "version": "2.2.8",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -14,9 +14,9 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@volar/typescript": "~2.4.11",
17
- "@vue/language-core": "2.2.4",
17
+ "@vue/language-core": "2.2.8",
18
18
  "path-browserify": "^1.0.1",
19
- "vue-component-type-helpers": "2.2.4"
19
+ "vue-component-type-helpers": "2.2.8"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "typescript": "*"
@@ -30,5 +30,5 @@
30
30
  "@types/node": "^22.10.4",
31
31
  "@types/path-browserify": "^1.0.1"
32
32
  },
33
- "gitHead": "c28986596935cb43979c9d437c25f292bdb36cef"
33
+ "gitHead": "cdf00e6f19971260607ea2347924b94126a254fc"
34
34
  }