Skip to content

Commit

Permalink
fix(babel): use correct types for params and args
Browse files Browse the repository at this point in the history
  • Loading branch information
LuLaValva authored and DylanPiercey committed Nov 14, 2023
1 parent 648a949 commit 1982bc1
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 16 deletions.
2 changes: 1 addition & 1 deletion packages/compiler/src/babel-plugin/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export function parseMarko(file) {
);
},
onTagTypeParams(part) {
currentTag.node.typeParameters = parseTypeParams(
currentBody.node.typeParameters = parseTypeParams(
file,
parser.read(part.value),
part.start,
Expand Down
4 changes: 2 additions & 2 deletions packages/compiler/src/babel-types/generator/patch.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,12 +193,12 @@ Object.assign(Printer.prototype, {
}

if (node.body.params.length) {
if (node.typeParameters) {
if (node.body.typeParameters) {
if (!node.typeArguments) {
this.token(" ");
}
this.token("<");
this.printList(node.typeParameters.params, node);
this.printList(node.body.typeParameters.params, node);
this.token(">");
}
this.token("|");
Expand Down
27 changes: 14 additions & 13 deletions packages/compiler/src/babel-types/types/definitions.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ const MarkoDefinitions = {
MarkoTagBody: {
aliases: ["Marko", "BlockParent", "Scope"],
builder: ["body", "params"],
visitor: ["params", "body"],
visitor: ["typeParameters", "params", "body"],
fields: {
params: {
validate: chain(
Expand All @@ -156,6 +156,10 @@ const MarkoDefinitions = {
),
default: [],
},
typeParameters: {
validate: assertNodeType("TSTypeParameterDeclaration"),
optional: true,
},
body: {
validate: arrayOfType([
"MarkoTag",
Expand All @@ -173,7 +177,14 @@ const MarkoDefinitions = {
MarkoTag: {
aliases: ["Marko", "Statement"],
builder: ["name", "attributes", "body", "arguments", "var"],
visitor: ["name", "attributes", "body", "arguments", "var"],
visitor: [
"name",
"typeArguments",
"attributes",
"body",
"arguments",
"var",
],
fields: {
name: {
validate: assertNodeType("Expression"),
Expand All @@ -193,17 +204,7 @@ const MarkoDefinitions = {
optional: true,
},
typeArguments: {
validate: chain(
assertValueType("array"),
assertEach(assertNodeType("TypeAnnotation"))
),
optional: true,
},
typeParameters: {
validate: chain(
assertValueType("array"),
assertEach(assertNodeType("TypeAnnotation"))
),
validate: assertNodeType("TSTypeParameterInstantiation"),
optional: true,
},
rawValue: {
Expand Down

0 comments on commit 1982bc1

Please sign in to comment.