UNPKG

@node-lightning/wire

Version:
33 lines (30 loc) 1.03 kB
import { EncodingType } from "./EncodingType"; import { ZlibEncoder } from "./ZlibEncoder"; export class Encoder { public encode(encoding: EncodingType, data: Buffer): Buffer { let encoded: Buffer; switch (encoding) { case EncodingType.Raw: encoded = data; break; case EncodingType.ZlibDeflate: encoded = new ZlibEncoder().encode(data); break; default: throw new Error("Unknown encoding type"); } return Buffer.concat([Buffer.from([encoding]), encoded]); } public decode(buffer: Buffer): Buffer { const encoding = buffer.readUInt8(0); const raw = buffer.slice(1); switch (encoding) { case EncodingType.Raw: return raw; case EncodingType.ZlibDeflate: return new ZlibEncoder().decode(raw); default: throw new Error("Unknown encoding type"); } } }