UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

19 lines 1.95 kB
import { TapStreamReader, TapStreamWriter } from '@iotize/tap/client/impl'; import { readFieldLength, writeFieldLength, } from './tlv-mapped-json-compressor'; export class TLVMappedJsonValueCompressor { constructor(converter) { this.converter = converter; } encode(input, stream = new TapStreamWriter()) { const encodedValue = this.converter.encode(input); writeFieldLength(stream, encodedValue.length); stream.writeBytes(encodedValue); return stream.toBytes; } decode(streamOrBuffer) { const stream = TapStreamReader.create(streamOrBuffer); const length = readFieldLength(stream); return this.converter.decode(stream.readBytes(length)); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGx2LW1hcHBlZC1qc29uLXZhbHVlLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2V4dHJhL2RiaW90L3NyYy9saWIvanNvbi1jb21wcmVzc29yL3Rsdi1tYXBwZWQtanNvbi12YWx1ZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixHQUNqQixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE1BQU0sT0FBTyw0QkFBNEI7SUFHdkMsWUFBNEIsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRTNELE1BQU0sQ0FDSixLQUFRLEVBQ1IsU0FBMEIsSUFBSSxlQUFlLEVBQUU7UUFFL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQTRDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiJ9