1
1
var path = require ( 'path' ) ;
2
2
3
- var endsInJsx = / \. j s x $ / ;
4
- var endsInTs = / \. t s $ / ;
5
- var endsInTsx = / \. t s x $ / ;
6
- var endsInBabelJs = / \. b a b e l \. j s $ / ;
7
- var endsInBabelJsx = / \. b a b e l \. j s x $ / ;
8
- var endsInBabelTs = / \. b a b e l \. t s $ / ;
9
- var endsInBabelTsx = / \. b a b e l \. t s x $ / ;
10
- var endsInEsbuildJs = / \. e s b u i l d \. j s $ / ;
11
- var endsInEsbuildJsx = / \. e s b u i l d \. j s x $ / ;
12
- var endsInEsbuildTs = / \. e s b u i l d \. t s $ / ;
13
- var endsInEsbuildTsx = / \. e s b u i l d \. t s x $ / ;
3
+ // We only register on the final extension (like `.js`) due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
4
+ // However, we use these matchers to apply the transform only if the full extension matches
5
+ function endsInJsx ( filename ) {
6
+ return filename . endsWith ( '.jsx' ) ;
7
+ }
8
+ function endsInTs ( filename ) {
9
+ return filename . endsWith ( '.ts' ) ;
10
+ }
11
+ function endsInTsx ( filename ) {
12
+ return filename . endsWith ( '.tsx' ) ;
13
+ }
14
+ function endsInBabelJs ( filename ) {
15
+ return filename . endsWith ( '.babel.js' ) ;
16
+ }
17
+ function endsInBabelJsx ( filename ) {
18
+ return filename . endsWith ( '.babel.jsx' ) ;
19
+ }
20
+ function endsInBabelTs ( filename ) {
21
+ return filename . endsWith ( '.babel.ts' ) ;
22
+ }
23
+ function endsInBabelTsx ( filename ) {
24
+ return filename . endsWith ( '.babel.tsx' ) ;
25
+ }
26
+ function endsInEsbuildJs ( filename ) {
27
+ return filename . endsWith ( '.esbuild.js' ) ;
28
+ }
29
+ function endsInEsbuildJsx ( filename ) {
30
+ return filename . endsWith ( '.esbuild.jsx' ) ;
31
+ }
32
+ function endsInEsbuildTs ( filename ) {
33
+ return filename . endsWith ( '.esbuild.ts' ) ;
34
+ }
35
+ function endsInEsbuildTsx ( filename ) {
36
+ return filename . endsWith ( '.esbuild.tsx' ) ;
37
+ }
14
38
15
39
var mjsStub = path . join ( __dirname , 'mjs-stub' ) ;
16
40
17
- // Not part of the above check because it seems broken
18
41
function isNodeModules ( file ) {
19
- return (
20
- path
21
- . relative ( process . cwd ( ) , file )
22
- . split ( path . sep )
23
- . indexOf ( 'node_modules' ) >= 0
24
- ) ;
42
+ return path . relative ( process . cwd ( ) , file ) . includes ( 'node_modules' ) ;
25
43
}
26
44
27
45
var extensions = {
@@ -75,9 +93,7 @@ var extensions = {
75
93
mod . register ( {
76
94
extensions : [ '.js' ] ,
77
95
target : 'node' + process . version . slice ( 1 ) ,
78
- hookMatcher : function ( file ) {
79
- return endsInEsbuildJs . test ( file ) ;
80
- } ,
96
+ hookMatcher : endsInEsbuildJs
81
97
} ) ;
82
98
} ,
83
99
} ,
@@ -87,9 +103,7 @@ var extensions = {
87
103
mod . register ( {
88
104
extensions : [ '.jsx' ] ,
89
105
target : 'node' + process . version . slice ( 1 ) ,
90
- hookMatcher : function ( file ) {
91
- return endsInEsbuildJsx . test ( file ) ;
92
- } ,
106
+ hookMatcher : endsInEsbuildJsx
93
107
} ) ;
94
108
} ,
95
109
} ,
@@ -99,9 +113,7 @@ var extensions = {
99
113
mod . register ( {
100
114
extensions : [ '.ts' ] ,
101
115
target : 'node' + process . version . slice ( 1 ) ,
102
- hookMatcher : function ( file ) {
103
- return endsInEsbuildTs . test ( file ) ;
104
- } ,
116
+ hookMatcher : endsInEsbuildTs
105
117
} ) ;
106
118
} ,
107
119
} ,
@@ -111,9 +123,7 @@ var extensions = {
111
123
mod . register ( {
112
124
extensions : [ '.tsx' ] ,
113
125
target : 'node' + process . version . slice ( 1 ) ,
114
- hookMatcher : function ( file ) {
115
- return endsInEsbuildTsx . test ( file ) ;
116
- } ,
126
+ hookMatcher : endsInEsbuildTsx
117
127
} ) ;
118
128
} ,
119
129
} ,
@@ -167,9 +177,7 @@ var extensions = {
167
177
mod . register ( {
168
178
extensions : [ '.ts' ] ,
169
179
target : 'node' + process . version . slice ( 1 ) ,
170
- hookMatcher : function ( file ) {
171
- return endsInTs . test ( file ) ;
172
- } ,
180
+ hookMatcher : endsInTs
173
181
} ) ;
174
182
} ,
175
183
} ,
@@ -203,9 +211,7 @@ var extensions = {
203
211
mod . register ( {
204
212
extensions : [ '.tsx' ] ,
205
213
target : 'node' + process . version . slice ( 1 ) ,
206
- hookMatcher : function ( file ) {
207
- return endsInTsx . test ( file ) ;
208
- } ,
214
+ hookMatcher : endsInTsx
209
215
} ) ;
210
216
} ,
211
217
} ,
0 commit comments