mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-01 01:38:07 +08:00
This updates Chai, Karma and Sinon. The breaking changes in Karma 6.0.0 don't affect us. DISABLE_THIRD_PARTY_CHECK=NPM update R=jacktfranklin@chromium.org Bug: none Change-Id: I77c2d4b1aeb1f0544d56c1f8a37e409a19352bfe Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2692906 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
28 lines
822 B
JavaScript
28 lines
822 B
JavaScript
const { PACKET_TYPES } = require("./commons");
|
|
|
|
const encodePacket = ({ type, data }, supportsBinary, callback) => {
|
|
if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
|
|
const buffer = toBuffer(data);
|
|
return callback(encodeBuffer(buffer, supportsBinary));
|
|
}
|
|
// plain string
|
|
return callback(PACKET_TYPES[type] + (data || ""));
|
|
};
|
|
|
|
const toBuffer = data => {
|
|
if (Buffer.isBuffer(data)) {
|
|
return data;
|
|
} else if (data instanceof ArrayBuffer) {
|
|
return Buffer.from(data);
|
|
} else {
|
|
return Buffer.from(data.buffer, data.byteOffset, data.byteLength);
|
|
}
|
|
};
|
|
|
|
// only 'message' packets can contain binary, so the type prefix is not needed
|
|
const encodeBuffer = (data, supportsBinary) => {
|
|
return supportsBinary ? data : "b" + data.toString("base64");
|
|
};
|
|
|
|
module.exports = encodePacket;
|