UNPKG

@astronautlabs/amf

Version:

Action Message Format (AMF0/3)

42 lines 1.57 kB
export class U29Serializer { *read(reader, type, parent, field) { if (!reader.isAvailable(8)) yield { remaining: 8 }; let byte1 = reader.readSync(8); if ((byte1 & 0x80) !== 0) { if (!reader.isAvailable(8)) yield { remaining: 8 }; let byte2 = reader.readSync(8); if ((byte2 & 0x80) !== 0) { if (!reader.isAvailable(8)) yield { remaining: 8 }; let byte3 = reader.readSync(8); if ((byte3 & 0x80) !== 0) { if (!reader.isAvailable(8)) yield { remaining: 8 }; let byte4 = reader.readSync(8); return ((byte1 & 0x7f) << 21) | ((byte2 & 0x7f) << 14) | ((byte3 & 0x7f) << 7) | byte4; } else { return ((byte1 & 0x7f) << 14) | ((byte2 & 0x7f) << 7) | byte3; } } else { return ((byte1 & 0x7f) << 7) | byte2; } } else { return byte1; } } write(writer, type, parent, field, value) { if (value >= 0x200000) writer.write(8, 0x80 | ((value & 0xFE00000) >> 21)); if (value >= 0x4000) writer.write(8, 0x80 | ((value & 0x1FC000) >> 14)); if (value >= 0x80) writer.write(8, 0x80 | ((value & 0x3f80) >> 7)); writer.write(8, (value & 0x7f)); } } //# sourceMappingURL=u29.js.map