Skip to content

Commit 03eb190

Browse files
committed
chore: update
1 parent 6d723aa commit 03eb190

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

src/loaders/vue.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parseComponent } from 'vue-template-compiler';
1+
import { parseComponent } from 'vue-template-compiler/build';
22
import { Loader } from '../lib/Loader.js';
33
import { Loader as LoaderNS } from '../../types/Loader.js';
44

src/parsers/CompositionParser.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,6 @@ export class CompositionParser extends ScriptParser {
280280
this.parsers.props.sync().parseWithDefaultsCall(node);
281281
}
282282
break;
283-
284283
case 'expose':
285284
case 'defineExpose':
286285
if (node.arguments.length) {
@@ -295,7 +294,9 @@ export class CompositionParser extends ScriptParser {
295294
break;
296295

297296
default:
298-
if (CompositionParser.isComponentCallExpression(node)) {
297+
if (node.callee.name === 'defineProps' && this.features.includes(Feature.props) && node.typeParameters) {
298+
this.parsers.props.sync().parseDefinePropsCall(node);
299+
} else if (CompositionParser.isComponentCallExpression(node)) {
299300
this.parseExportDefaultDeclaration(node.arguments[0] || node);
300301
} else if (this.hasLeftSidePart(node)) {
301302
this.parseCompositionFeature(node.callee.name, node);

src/parsers/MarkupTemplateParser.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ASTElement, compile } from 'vue-template-compiler';
1+
import { ASTElement, compile } from 'vue-template-compiler/build';
22

33
import { AbstractSourceParser } from './AbstractSourceParser.js';
44
import { SlotParser } from './SlotParser.js';
@@ -118,7 +118,7 @@ export class MarkupTemplateParser extends AbstractSourceParser<Parser.Source, nu
118118

119119
parse() {
120120
if (!this.features.includes(Feature.slots)
121-
&& !this.features.includes(Feature.events)) {
121+
&& !this.features.includes(Feature.events)) {
122122
return;
123123
}
124124

src/parsers/PropParser.ts

+14
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,20 @@ export class PropParser extends AbstractExpressionParser {
171171
this.parseEntry(entry, node, name);
172172
}
173173

174+
parseDefinePropsCall(node) {
175+
const param = node.typeParameters.params[0];
176+
177+
if (param.type === Syntax.TSTypeLiteral) {
178+
this.parseTSTypeLiteral(param);
179+
180+
for (const property of param.members) {
181+
this.defaultsProperties[property.key.name] = property;
182+
}
183+
184+
this.parse(node);
185+
}
186+
}
187+
174188
parseWithDefaultsCall(node) {
175189
if (node.arguments[0]?.type === Syntax.CallExpression) {
176190
const defaultsNode = node.arguments[1];

0 commit comments

Comments
 (0)