@@ -44,35 +44,37 @@ export function getEventCollector(
4444 break ;
4545 }
4646 default : {
47- if (
48- event === "ontext" &&
49- events [ events . length - 1 ] ?. $event === "text"
50- ) {
51- const last = events [ events . length - 1 ] ;
52- // Combine text nodes
47+ // eslint-disable-next-line unicorn/prefer-at
48+ const last = events [ events . length - 1 ] ;
49+
50+ // Combine text nodes
51+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
52+ if ( event === "ontext" && last && last . $event === " text" ) {
5353 ( last . data [ 0 ] as string ) += data [ 0 ] ;
5454 last . endIndex = parser . endIndex ;
55- } else {
56- // Remove `undefined`s from attribute responses, as they cannot be represented in JSON.
57- if ( event === "onattribute" && data [ 2 ] === undefined ) {
58- data . pop ( ) ;
59- }
6055
61- if ( ! ( parser . startIndex <= parser . endIndex ) ) {
62- throw new Error (
63- `Invalid start/end index ${ parser . startIndex } > ${ parser . endIndex } `
64- ) ;
65- }
56+ break ;
57+ }
6658
67- events . push ( {
68- $event : event . slice ( 2 ) ,
69- startIndex : parser . startIndex ,
70- endIndex : parser . endIndex ,
71- data,
72- } ) ;
59+ // Remove `undefined`s from attribute responses, as they cannot be represented in JSON.
60+ if ( event === "onattribute" && data [ 2 ] === undefined ) {
61+ data . pop ( ) ;
62+ }
7363
74- parser . endIndex ;
64+ if ( ! ( parser . startIndex <= parser . endIndex ) ) {
65+ throw new Error (
66+ `Invalid start/end index ${ parser . startIndex } > ${ parser . endIndex } `
67+ ) ;
7568 }
69+
70+ events . push ( {
71+ $event : event . slice ( 2 ) ,
72+ startIndex : parser . startIndex ,
73+ endIndex : parser . endIndex ,
74+ data,
75+ } ) ;
76+
77+ parser . endIndex ;
7678 }
7779 }
7880 }
0 commit comments