1
1
import test from 'tape'
2
- import { parse } from 'acorn'
2
+ import { Parser } from 'acorn'
3
+ import jsx from 'acorn-jsx'
3
4
import { fromEstree } from './index.js'
4
5
6
+ const parser = Parser . extend ( jsx ( ) )
7
+
5
8
test ( 'esast-util-from-estree' , ( t ) => {
6
9
t . deepEqual (
7
- // @ts -expect-error Similar enough.
8
- fromEstree ( parse ( 'console.log(1)' , { locations : true , ecmaVersion : 2021 } ) ) ,
10
+ fromEstree (
11
+ // @ts -expect-error Similar enough.
12
+ parser . parse ( 'console.log(1)' , { locations : true , ecmaVersion : 2021 } )
13
+ ) ,
9
14
{
10
15
type : 'Program' ,
11
16
body : [
@@ -72,7 +77,8 @@ test('esast-util-from-estree', (t) => {
72
77
t . deepEqual (
73
78
fromEstree (
74
79
// @ts -expect-error Hush, it’s fine.
75
- parse ( '/(?:)/' , { locations : true , ecmaVersion : 2021 } ) . body [ 0 ] . expression
80
+ parser . parse ( '/(?:)/' , { locations : true , ecmaVersion : 2021 } ) . body [ 0 ]
81
+ . expression
76
82
) ,
77
83
{
78
84
type : 'Literal' ,
@@ -86,6 +92,46 @@ test('esast-util-from-estree', (t) => {
86
92
'should transform regexes'
87
93
)
88
94
95
+ t . deepEqual (
96
+ fromEstree (
97
+ // @ts -expect-error Hush, it’s fine.
98
+ parser . parse ( '<>b</>' , { locations : true , ecmaVersion : 2021 } ) . body [ 0 ]
99
+ . expression
100
+ ) ,
101
+ {
102
+ type : 'JSXFragment' ,
103
+ openingFragment : {
104
+ type : 'JSXOpeningFragment' ,
105
+ position : {
106
+ start : { line : 1 , column : 1 , offset : 0 } ,
107
+ end : { line : 1 , column : 3 , offset : 2 }
108
+ }
109
+ } ,
110
+ closingFragment : {
111
+ type : 'JSXClosingFragment' ,
112
+ position : {
113
+ start : { line : 1 , column : 4 , offset : 3 } ,
114
+ end : { line : 1 , column : 7 , offset : 6 }
115
+ }
116
+ } ,
117
+ children : [
118
+ {
119
+ type : 'JSXText' ,
120
+ value : 'b' ,
121
+ position : {
122
+ start : { line : 1 , column : 3 , offset : 2 } ,
123
+ end : { line : 1 , column : 4 , offset : 3 }
124
+ }
125
+ }
126
+ ] ,
127
+ position : {
128
+ start : { line : 1 , column : 1 , offset : 0 } ,
129
+ end : { line : 1 , column : 7 , offset : 6 }
130
+ }
131
+ } ,
132
+ 'should transform jsx fragments'
133
+ )
134
+
89
135
const bigInts = [
90
136
[ '1n' , 'dec' ] ,
91
137
[ '0X1n' , 'hex, cap' ] ,
@@ -100,7 +146,7 @@ test('esast-util-from-estree', (t) => {
100
146
while ( ++ index < bigInts . length ) {
101
147
const tree = fromEstree (
102
148
// @ts -expect-error Hush, it’s fine.
103
- parse ( bigInts [ index ] [ 0 ] , { locations : true , ecmaVersion : 2021 } )
149
+ parser . parse ( bigInts [ index ] [ 0 ] , { locations : true , ecmaVersion : 2021 } )
104
150
)
105
151
106
152
t . deepEqual (
0 commit comments