in src/logger.ts [162:183]
function processData(data: Uint8Array | string, encoding?: BufferEncoding) {
let decodedData;
try {
if (data instanceof Uint8Array) {
decodedData = Buffer.from(data.buffer).toString();
} else {
decodedData = Buffer.from(data, encoding).toString();
}
} catch (e) {
// Failed to decode, treat it as simple text.
return {isJSON: false, processedData: data};
}
// strip any leading ANSI color codes from the decoded data
// to parse colored JSON objects correctly
decodedData = decodedData.replace(/\x1b[[(?);]{0,2}(;?\d)*./g, '');
try {
return {isJSON: true, processedData: JSON.parse(decodedData)};
} catch (e) {
return {isJSON: false, processedData: decodedData};
}
}