@@ -140,27 +140,38 @@ System.register(["typescript"], function (exports_1, context_1) {
140
140
}
141
141
function loadTsconfigOptions ( options , parentAddress , fetchJson ) {
142
142
return __awaiter ( this , void 0 , void 0 , function ( ) {
143
- var tsconfigName , tsconfigText , result , extendedTsconfig , _a ;
143
+ var tsconfigName ;
144
+ return __generator ( this , function ( _a ) {
145
+ tsconfigName = options && options . tsconfig ;
146
+ if ( tsconfigName === true )
147
+ tsconfigName = 'tsconfig.json' ;
148
+ if ( tsconfigName ) {
149
+ return [ 2 , loadTsconfigFile ( tsconfigName , parentAddress , fetchJson ) ] ;
150
+ }
151
+ else {
152
+ return [ 2 , undefined ] ;
153
+ }
154
+ return [ 2 ] ;
155
+ } ) ;
156
+ } ) ;
157
+ }
158
+ function loadTsconfigFile ( filename , parentAddress , fetchJson ) {
159
+ return __awaiter ( this , void 0 , void 0 , function ( ) {
160
+ var tsconfigText , result , extendedTsconfig , _a ;
144
161
return __generator ( this , function ( _b ) {
145
162
switch ( _b . label ) {
146
- case 0 :
147
- tsconfigName = options && options . tsconfig ;
148
- if ( tsconfigName === true )
149
- tsconfigName = 'tsconfig.json' ;
150
- if ( ! tsconfigName )
151
- return [ 3 , 7 ] ;
152
- return [ 4 , fetchJson ( tsconfigName , parentAddress ) ] ;
163
+ case 0 : return [ 4 , fetchJson ( filename , parentAddress ) ] ;
153
164
case 1 :
154
165
tsconfigText = _b . sent ( ) ;
155
- result = typescript_1 [ "default" ] . parseConfigFileTextToJson ( tsconfigName , tsconfigText ) ;
166
+ result = typescript_1 [ "default" ] . parseConfigFileTextToJson ( filename , tsconfigText ) ;
156
167
if ( ! result . error )
157
168
return [ 3 , 2 ] ;
158
169
formatErrors ( [ result . error ] , logger$2 ) ;
159
- throw new Error ( "failed to load tsconfig from " + tsconfigName ) ;
170
+ throw new Error ( "failed to load tsconfig from " + filename ) ;
160
171
case 2 :
161
172
if ( ! result . config [ "extends" ] )
162
173
return [ 3 , 4 ] ;
163
- return [ 4 , loadTsconfigOptions ( options , result . config [ "extends" ] , fetchJson ) ] ;
174
+ return [ 4 , loadTsconfigFile ( result . config [ "extends" ] , filename , fetchJson ) ] ;
164
175
case 3 :
165
176
_a = _b . sent ( ) ;
166
177
return [ 3 , 5 ] ;
@@ -170,9 +181,6 @@ System.register(["typescript"], function (exports_1, context_1) {
170
181
case 5 :
171
182
extendedTsconfig = _a ;
172
183
return [ 2 , __assign ( { } , extendedTsconfig , result . config . compilerOptions ) ] ;
173
- case 6 : return [ 3 , 8 ] ;
174
- case 7 : return [ 2 , undefined ] ;
175
- case 8 : return [ 2 ] ;
176
184
}
177
185
} ) ;
178
186
} ) ;
@@ -237,6 +245,16 @@ System.register(["typescript"], function (exports_1, context_1) {
237
245
function isJson ( filename ) {
238
246
return jsonRegex . test ( filename ) ;
239
247
}
248
+ function stripDoubleExtension ( normalized ) {
249
+ var parts = normalized . split ( '.' ) ;
250
+ if ( parts . length > 1 ) {
251
+ var extensions = [ "js" , "jsx" , "ts" , "tsx" , "json" ] ;
252
+ if ( extensions . indexOf ( parts [ parts . length - 2 ] ) >= 0 ) {
253
+ return parts . slice ( 0 , - 1 ) . join ( '.' ) ;
254
+ }
255
+ }
256
+ return normalized ;
257
+ }
240
258
function hasError ( diags ) {
241
259
return diags . some ( function ( diag ) { return ( diag . category === typescript_1 [ "default" ] . DiagnosticCategory . Error ) ; } ) ;
242
260
}
@@ -304,7 +322,7 @@ System.register(["typescript"], function (exports_1, context_1) {
304
322
logger . debug ( "systemjs translating " + load . address ) ;
305
323
if ( isJson ( load . address ) )
306
324
return [ 2 , load . source ] ;
307
- return [ 4 , resolveOptions ( load . metadata . typescriptOptions , SystemJS . typescriptOptions , load . address , _fetchJson ) ] ;
325
+ return [ 4 , resolveOptions ( SystemJS . typescriptOptions , load . metadata . typescriptOptions , load . address , _fetchJson ) ] ;
308
326
case 1 :
309
327
options = _a . sent ( ) ;
310
328
host . addFile ( load . address , load . source , options . target ) ;
@@ -344,11 +362,14 @@ System.register(["typescript"], function (exports_1, context_1) {
344
362
exports_1 ( "instantiate" , instantiate ) ;
345
363
function _fetchJson ( fileName , parentAddress ) {
346
364
return __awaiter ( this , void 0 , void 0 , function ( ) {
347
- var json ;
365
+ var address , json ;
348
366
return __generator ( this , function ( _a ) {
349
367
switch ( _a . label ) {
350
- case 0 : return [ 4 , SystemJS [ "import" ] ( fileName + '!' + __moduleName , parentAddress ) ] ;
368
+ case 0 : return [ 4 , SystemJS . normalize ( fileName , parentAddress ) ] ;
351
369
case 1 :
370
+ address = _a . sent ( ) ;
371
+ return [ 4 , SystemJS [ "import" ] ( stripDoubleExtension ( address ) + '!' + __moduleName , parentAddress ) ] ;
372
+ case 2 :
352
373
json = _a . sent ( ) ;
353
374
logger . debug ( "fetched " + fileName ) ;
354
375
return [ 2 , JSON . stringify ( json ) ] ;
0 commit comments