@@ -1086,14 +1086,12 @@ namespace ts {
1086
1086
return ( directoryName , callback ) => fsWatchFile ( directoryName , ( ) => callback ( directoryName ) , PollingInterval . Medium ) ;
1087
1087
}
1088
1088
1089
- function readFile ( fileName : string , _encoding ?: string ) : string | undefined {
1090
- perfLogger . logStartReadFile ( fileName ) ;
1089
+ function readFileWorker ( fileName : string , _encoding ?: string ) : string | undefined {
1091
1090
if ( ! fileExists ( fileName ) ) {
1092
1091
return undefined ;
1093
1092
}
1094
1093
const buffer = _fs . readFileSync ( fileName ) ;
1095
1094
let len = buffer . length ;
1096
- let result : string ;
1097
1095
if ( len >= 2 && buffer [ 0 ] === 0xFE && buffer [ 1 ] === 0xFF ) {
1098
1096
// Big endian UTF-16 byte order mark detected. Since big endian is not supported by node.js,
1099
1097
// flip all byte pairs and treat as little endian.
@@ -1103,22 +1101,25 @@ namespace ts {
1103
1101
buffer [ i ] = buffer [ i + 1 ] ;
1104
1102
buffer [ i + 1 ] = temp ;
1105
1103
}
1106
- result = buffer . toString ( "utf16le" , 2 ) ;
1104
+ return buffer . toString ( "utf16le" , 2 ) ;
1107
1105
}
1108
- else if ( len >= 2 && buffer [ 0 ] === 0xFF && buffer [ 1 ] === 0xFE ) {
1106
+ if ( len >= 2 && buffer [ 0 ] === 0xFF && buffer [ 1 ] === 0xFE ) {
1109
1107
// Little endian UTF-16 byte order mark detected
1110
- result = buffer . toString ( "utf16le" , 2 ) ;
1108
+ return buffer . toString ( "utf16le" , 2 ) ;
1111
1109
}
1112
- else if ( len >= 3 && buffer [ 0 ] === 0xEF && buffer [ 1 ] === 0xBB && buffer [ 2 ] === 0xBF ) {
1110
+ if ( len >= 3 && buffer [ 0 ] === 0xEF && buffer [ 1 ] === 0xBB && buffer [ 2 ] === 0xBF ) {
1113
1111
// UTF-8 byte order mark detected
1114
- result = buffer . toString ( "utf8" , 3 ) ;
1115
- }
1116
- else {
1117
- // Default is UTF-8 with no byte order mark
1118
- result = buffer . toString ( "utf8" ) ;
1112
+ return buffer . toString ( "utf8" , 3 ) ;
1119
1113
}
1114
+ // Default is UTF-8 with no byte order mark
1115
+ return buffer . toString ( "utf8" ) ;
1116
+ }
1117
+
1118
+ function readFile ( fileName : string , _encoding ?: string ) : string | undefined {
1119
+ perfLogger . logStartReadFile ( fileName ) ;
1120
+ const file = readFileWorker ( fileName , _encoding ) ;
1120
1121
perfLogger . logStopReadFile ( ) ;
1121
- return result ;
1122
+ return file ;
1122
1123
}
1123
1124
1124
1125
function writeFile ( fileName : string , data : string , writeByteOrderMark ?: boolean ) : void {
0 commit comments