UNPKG

@devgrid/netron

Version:
47 lines 1.58 kB
import { SmartBuffer } from '@devgrid/smartbuffer'; import { Packet } from './packet'; import { serializer } from './serializer'; import { TYPE_STREAM } from './types'; export * from './types'; export const createPacket = (id, impulse, action, data) => { const packet = new Packet(id); packet.setImpulse(impulse); packet.setType(action); packet.data = data; return packet; }; export const createStreamPacket = (id, streamId, streamIndex, isLast, isLive, data) => { const packet = new Packet(id); packet.setType(TYPE_STREAM); packet.setStreamInfo(streamId, streamIndex, isLast, isLive); packet.data = data; return packet; }; export const encodePacket = (packet) => { const buf = new SmartBuffer(SmartBuffer.DEFAULT_CAPACITY, true); buf.writeUInt32BE(packet.id); buf.writeUInt8(packet.flags); serializer.encode(packet.data, buf); if (packet.isStreamChunk()) { buf.writeUInt32BE(packet.streamId); buf.writeUInt32BE(packet.streamIndex); } return buf.toBuffer(); }; export const decodePacket = (buf) => { const buffer = SmartBuffer.wrap(buf); const pkt = new Packet(buffer.readUInt32BE()); pkt.flags = buffer.readUInt8(); const result = serializer.decoder.tryDecode(buffer); if (!result) { throw new Error('Invalid packet'); } pkt.data = result.value; if (pkt.isStreamChunk()) { pkt.streamId = buffer.readUInt32BE(); pkt.streamIndex = buffer.readUInt32BE(); } return pkt; }; export { Packet, serializer }; //# sourceMappingURL=index.js.map