@foxglove/rosmsg-serialization
Version:
ROS1 (Robot Operating System) message serialization, for reading and writing bags and network messages
22 lines • 769 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const decoder = new TextDecoder();
/**
* Fast UTF8 string decoding. TextDecoder becomes faster for large strings, but String.fromCharCode
* is faster for small strings. However, TextDecoder is required if the data contains any non-ASCII
* chars.
*/
function decodeString(data) {
if (data.length >= 50) {
return decoder.decode(data);
}
for (let i = 0; i < data.length; i++) {
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
if (data[i] & 0x80) {
return decoder.decode(data);
}
}
return String.fromCharCode.apply(null, data);
}
exports.default = decodeString;
//# sourceMappingURL=decodeString.js.map