Skip to content

Commit f6fb130

Browse files
committed
Add 'readFileWorker' instead of modifying 'readFile'
1 parent cca32f0 commit f6fb130

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/compiler/sys.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,14 +1086,12 @@ namespace ts {
10861086
return (directoryName, callback) => fsWatchFile(directoryName, () => callback(directoryName), PollingInterval.Medium);
10871087
}
10881088

1089-
function readFile(fileName: string, _encoding?: string): string | undefined {
1090-
perfLogger.logStartReadFile(fileName);
1089+
function readFileWorker(fileName: string, _encoding?: string): string | undefined {
10911090
if (!fileExists(fileName)) {
10921091
return undefined;
10931092
}
10941093
const buffer = _fs.readFileSync(fileName);
10951094
let len = buffer.length;
1096-
let result: string;
10971095
if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) {
10981096
// Big endian UTF-16 byte order mark detected. Since big endian is not supported by node.js,
10991097
// flip all byte pairs and treat as little endian.
@@ -1103,22 +1101,25 @@ namespace ts {
11031101
buffer[i] = buffer[i + 1];
11041102
buffer[i + 1] = temp;
11051103
}
1106-
result = buffer.toString("utf16le", 2);
1104+
return buffer.toString("utf16le", 2);
11071105
}
1108-
else if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
1106+
if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
11091107
// Little endian UTF-16 byte order mark detected
1110-
result = buffer.toString("utf16le", 2);
1108+
return buffer.toString("utf16le", 2);
11111109
}
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) {
11131111
// 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);
11191113
}
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);
11201121
perfLogger.logStopReadFile();
1121-
return result;
1122+
return file;
11221123
}
11231124

11241125
function writeFile(fileName: string, data: string, writeByteOrderMark?: boolean): void {

0 commit comments

Comments
 (0)