mirror of
https://github.com/yuzu-emu/discord-rpc
synced 2024-11-26 11:38:06 +00:00
26 lines
742 B
JavaScript
26 lines
742 B
JavaScript
|
|
module.exports = class RpcMessage {
|
|
static serialize(obj) {
|
|
const serializedJson = JSON.stringify(obj);
|
|
const msgLen = 4 + serializedJson.length;
|
|
let buff = Buffer.alloc(msgLen);
|
|
buff.writeInt32LE(msgLen, 0);
|
|
buff.write(serializedJson, 4, serializedJson.length, 'utf-8');
|
|
return buff;
|
|
}
|
|
|
|
static deserialize(buff) {
|
|
const msgLen = buff.readInt32LE(0);
|
|
if (buff.length < msgLen) {
|
|
return null;
|
|
}
|
|
const msg = buff.toString('utf-8', 4, msgLen);
|
|
try {
|
|
return JSON.parse(msg);
|
|
} catch(e) {
|
|
console.log(`failed to parse "${msg}"`);
|
|
console.error(e);
|
|
return {};
|
|
}
|
|
}
|
|
};
|