MCPcopy Index your code
hub / github.com/nodejs/node / readFileWorker

Function readFileWorker

test/fixtures/snapshot/typescript.js:7334–7364  ·  view source on GitHub ↗
(fileName, _encoding)

Source from the content-addressed store, hash-verified

7332 }
7333 }
7334 function readFileWorker(fileName, _encoding) {
7335 var buffer;
7336 try {
7337 buffer = _fs.readFileSync(fileName);
7338 }
7339 catch (e) {
7340 return undefined;
7341 }
7342 var len = buffer.length;
7343 if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) {
7344 // Big endian UTF-16 byte order mark detected. Since big endian is not supported by node.js,
7345 // flip all byte pairs and treat as little endian.
7346 len &= ~1; // Round down to a multiple of 2
7347 for (var i = 0; i < len; i += 2) {
7348 var temp = buffer[i];
7349 buffer[i] = buffer[i + 1];
7350 buffer[i + 1] = temp;
7351 }
7352 return buffer.toString("utf16le", 2);
7353 }
7354 if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) {
7355 // Little endian UTF-16 byte order mark detected
7356 return buffer.toString("utf16le", 2);
7357 }
7358 if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
7359 // UTF-8 byte order mark detected
7360 return buffer.toString("utf8", 3);
7361 }
7362 // Default is UTF-8 with no byte order mark
7363 return buffer.toString("utf8");
7364 }
7365 function readFile(fileName, _encoding) {
7366 ts.perfLogger.logStartReadFile(fileName);
7367 var file = readFileWorker(fileName, _encoding);

Callers 1

readFileFunction · 0.85

Calls 2

readFileSyncMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected