vue-component-meta 2.2.2 → 2.2.6
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.
- package/lib/base.js +38 -11
- package/package.json +4 -4
package/lib/base.js
CHANGED
|
@@ -561,15 +561,16 @@ function createSchemaResolvers(typeChecker, symbolNode, { rawType, schema: optio
|
|
|
561
561
|
}
|
|
562
562
|
function readVueComponentDefaultProps(root, printer, ts) {
|
|
563
563
|
let result = {};
|
|
564
|
+
const { sfc } = root;
|
|
564
565
|
scriptSetupWorker();
|
|
565
566
|
scriptWorker();
|
|
566
567
|
return result;
|
|
567
568
|
function scriptSetupWorker() {
|
|
568
|
-
|
|
569
|
-
if (!ast) {
|
|
569
|
+
if (!sfc.scriptSetup) {
|
|
570
570
|
return;
|
|
571
571
|
}
|
|
572
|
-
const
|
|
572
|
+
const { ast } = sfc.scriptSetup;
|
|
573
|
+
const codegen = vue.tsCodegen.get(sfc);
|
|
573
574
|
const scriptSetupRanges = codegen?.getScriptSetupRanges();
|
|
574
575
|
if (scriptSetupRanges?.withDefaults?.argNode) {
|
|
575
576
|
const obj = findObjectLiteralExpression(scriptSetupRanges.withDefaults.argNode);
|
|
@@ -596,10 +597,21 @@ function readVueComponentDefaultProps(root, printer, ts) {
|
|
|
596
597
|
}
|
|
597
598
|
}
|
|
598
599
|
else if (scriptSetupRanges?.defineProps?.destructured) {
|
|
599
|
-
for (const [
|
|
600
|
+
for (const [name, initializer] of scriptSetupRanges.defineProps.destructured) {
|
|
600
601
|
if (initializer) {
|
|
601
602
|
const expText = printer?.printNode(ts.EmitHint.Expression, initializer, ast) ?? initializer.getText(ast);
|
|
602
|
-
result[
|
|
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);
|
|
603
615
|
}
|
|
604
616
|
}
|
|
605
617
|
}
|
|
@@ -617,12 +629,13 @@ function readVueComponentDefaultProps(root, printer, ts) {
|
|
|
617
629
|
}
|
|
618
630
|
}
|
|
619
631
|
function scriptWorker() {
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
632
|
+
if (!sfc.script) {
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
635
|
+
const { ast } = sfc.script;
|
|
636
|
+
const scriptResult = readTsComponentDefaultProps(ast, 'default', printer, ts);
|
|
637
|
+
for (const [key, value] of Object.entries(scriptResult)) {
|
|
638
|
+
result[key] = value;
|
|
626
639
|
}
|
|
627
640
|
}
|
|
628
641
|
}
|
|
@@ -707,6 +720,20 @@ function resolvePropsOption(ast, props, printer, ts) {
|
|
|
707
720
|
}
|
|
708
721
|
return result;
|
|
709
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
|
+
}
|
|
710
737
|
function resolveDefaultOptionExpression(_default, ts) {
|
|
711
738
|
if (ts.isArrowFunction(_default)) {
|
|
712
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.
|
|
3
|
+
"version": "2.2.6",
|
|
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.
|
|
17
|
+
"@vue/language-core": "2.2.6",
|
|
18
18
|
"path-browserify": "^1.0.1",
|
|
19
|
-
"vue-component-type-helpers": "2.2.
|
|
19
|
+
"vue-component-type-helpers": "2.2.6"
|
|
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": "
|
|
33
|
+
"gitHead": "f2088e256dc0220db9549d28d9f865a5711dcfbe"
|
|
34
34
|
}
|