@@ -2020,14 +2020,14 @@ namespace ts {
20202020 export const supportedJavascriptExtensions = [ ".js" , ".jsx" ] ;
20212021 const allSupportedExtensions = supportedTypeScriptExtensions . concat ( supportedJavascriptExtensions ) ;
20222022
2023- export function getSupportedExtensions ( options ?: CompilerOptions , extraFileExtensions ?: FileExtensionInfo [ ] ) : string [ ] {
2023+ export function getSupportedExtensions ( options ?: CompilerOptions , extraFileExtensions ?: JsFileExtensionInfo [ ] ) : string [ ] {
20242024 const needAllExtensions = options && options . allowJs ;
2025- if ( ! extraFileExtensions || extraFileExtensions . length === 0 ) {
2025+ if ( ! extraFileExtensions || extraFileExtensions . length === 0 || ! needAllExtensions ) {
20262026 return needAllExtensions ? allSupportedExtensions : supportedTypeScriptExtensions ;
20272027 }
2028- const extensions = ( needAllExtensions ? allSupportedExtensions : supportedTypeScriptExtensions ) . slice ( 0 ) ;
2028+ const extensions = allSupportedExtensions . slice ( 0 ) ;
20292029 for ( const extInfo of extraFileExtensions ) {
2030- if ( needAllExtensions || extInfo . scriptKind === ScriptKind . TS ) {
2030+ if ( extensions . indexOf ( extInfo . extension ) === - 1 ) {
20312031 extensions . push ( extInfo . extension ) ;
20322032 }
20332033 }
@@ -2042,7 +2042,7 @@ namespace ts {
20422042 return forEach ( supportedTypeScriptExtensions , extension => fileExtensionIs ( fileName , extension ) ) ;
20432043 }
20442044
2045- export function isSupportedSourceFileName ( fileName : string , compilerOptions ?: CompilerOptions , extraFileExtensions ?: FileExtensionInfo [ ] ) {
2045+ export function isSupportedSourceFileName ( fileName : string , compilerOptions ?: CompilerOptions , extraFileExtensions ?: JsFileExtensionInfo [ ] ) {
20462046 if ( ! fileName ) { return false ; }
20472047
20482048 for ( const extension of getSupportedExtensions ( compilerOptions , extraFileExtensions ) ) {
@@ -2061,7 +2061,6 @@ namespace ts {
20612061 export const enum ExtensionPriority {
20622062 TypeScriptFiles = 0 ,
20632063 DeclarationAndJavaScriptFiles = 2 ,
2064- Limit = 5 ,
20652064
20662065 Highest = TypeScriptFiles ,
20672066 Lowest = DeclarationAndJavaScriptFiles ,
@@ -2070,7 +2069,7 @@ namespace ts {
20702069 export function getExtensionPriority ( path : string , supportedExtensions : string [ ] ) : ExtensionPriority {
20712070 for ( let i = supportedExtensions . length - 1 ; i >= 0 ; i -- ) {
20722071 if ( fileExtensionIs ( path , supportedExtensions [ i ] ) ) {
2073- return adjustExtensionPriority ( < ExtensionPriority > i ) ;
2072+ return adjustExtensionPriority ( < ExtensionPriority > i , supportedExtensions ) ;
20742073 }
20752074 }
20762075
@@ -2082,27 +2081,26 @@ namespace ts {
20822081 /**
20832082 * Adjusts an extension priority to be the highest priority within the same range.
20842083 */
2085- export function adjustExtensionPriority ( extensionPriority : ExtensionPriority ) : ExtensionPriority {
2084+ export function adjustExtensionPriority ( extensionPriority : ExtensionPriority , supportedExtensions : string [ ] ) : ExtensionPriority {
20862085 if ( extensionPriority < ExtensionPriority . DeclarationAndJavaScriptFiles ) {
20872086 return ExtensionPriority . TypeScriptFiles ;
20882087 }
2089- else if ( extensionPriority < ExtensionPriority . Limit ) {
2088+ else if ( extensionPriority < supportedExtensions . length ) {
20902089 return ExtensionPriority . DeclarationAndJavaScriptFiles ;
20912090 }
20922091 else {
2093- return ExtensionPriority . Limit ;
2094- }
2095- }
2092+ return supportedExtensions . length ;
2093+ } }
20962094
20972095 /**
20982096 * Gets the next lowest extension priority for a given priority.
20992097 */
2100- export function getNextLowestExtensionPriority ( extensionPriority : ExtensionPriority ) : ExtensionPriority {
2098+ export function getNextLowestExtensionPriority ( extensionPriority : ExtensionPriority , supportedExtensions : string [ ] ) : ExtensionPriority {
21012099 if ( extensionPriority < ExtensionPriority . DeclarationAndJavaScriptFiles ) {
21022100 return ExtensionPriority . DeclarationAndJavaScriptFiles ;
21032101 }
21042102 else {
2105- return ExtensionPriority . Limit ;
2103+ return supportedExtensions . length ;
21062104 }
21072105 }
21082106
0 commit comments