Skip to content

Commit 59a910e

Browse files
committed
fix: improve typescript angle bracket parsing
1 parent ed747ff commit 59a910e

File tree

23 files changed

+197
-25
lines changed

23 files changed

+197
-25
lines changed

.changeset/major-experts-start.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"htmljs-parser": minor
3+
---
4+
5+
Improve expression parsing for typescript, especially around multi line generics.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1╭─ <div value=fn as (x: number) => string />
2+
│ ││ │ ││ ╰─ openTagEnd:selfClosed "/>"
3+
│ ││ │ │╰─ attrValue.value "fn as (x: number) => string"
4+
│ ││ │ ╰─ attrValue "=fn as (x: number) => string"
5+
│ ││ ╰─ attrName "value"
6+
│ │╰─ tagName "div"
7+
╰─ ╰─ openTagStart
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div value=fn as (x: number) => string />
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1╭─ <div value=x as Map<string, Array<Record<K, V>>> />
2+
│ ││ │ ││ ╰─ openTagEnd:selfClosed "/>"
3+
│ ││ │ │╰─ attrValue.value "x as Map<string, Array<Record<K, V>>>"
4+
│ ││ │ ╰─ attrValue "=x as Map<string, Array<Record<K, V>>>"
5+
│ ││ ╰─ attrName "value"
6+
│ │╰─ tagName "div"
7+
╰─ ╰─ openTagStart
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div value=x as Map<string, Array<Record<K, V>>> />
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1╭─ <div value=fn as <T>(x: T) => T />
2+
│ ││ │ ││ ╰─ openTagEnd:selfClosed "/>"
3+
│ ││ │ │╰─ attrValue.value "fn as <T>(x: T) => T"
4+
│ ││ │ ╰─ attrValue "=fn as <T>(x: T) => T"
5+
│ ││ ╰─ attrName "value"
6+
│ │╰─ tagName "div"
7+
╰─ ╰─ openTagStart
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div value=fn as <T>(x: T) => T />
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1╭─ <div value=x as Array<T> />
2+
│ ││ │ ││ ╰─ openTagEnd:selfClosed "/>"
3+
│ ││ │ │╰─ attrValue.value "x as Array<T>"
4+
│ ││ │ ╰─ attrValue "=x as Array<T>"
5+
│ ││ ╰─ attrName "value"
6+
│ │╰─ tagName "div"
7+
╰─ ╰─ openTagStart
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div value=x as Array<T> />
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
1╭─ <div value=x as A & B<T> />
2+
│ ││ │ ││ ╰─ openTagEnd:selfClosed "/>"
3+
│ ││ │ │╰─ attrValue.value "x as A & B<T>"
4+
│ ││ │ ╰─ attrValue "=x as A & B<T>"
5+
│ ││ ╰─ attrName "value"
6+
│ │╰─ tagName "div"
7+
╰─ ╰─ openTagStart

0 commit comments

Comments
 (0)