UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

23 lines 2.3 kB
import { TapStreamWriter } from '@iotize/tap/client/impl'; import { TlvJsonCompressorError } from './errors'; import { TLVMappedJsonIntegerCompressor } from './tlv-mapped-json-integer-converter'; export class TLVMappedEnumConverter { constructor(mapping) { this.mapping = mapping; } encode(keyValue, stream = new TapStreamWriter()) { if (!(keyValue in this.mapping)) { throw TlvJsonCompressorError.invalidEnumKey(keyValue, this.mapping); } return TLVMappedEnumConverter._valueConverter.encode(keyValue, stream); } decode(streamOrBuffer) { const keyValue = TLVMappedEnumConverter._valueConverter.decode(streamOrBuffer); if (!(keyValue in this.mapping)) { throw TlvJsonCompressorError.invalidEnumKey(keyValue, this.mapping); } return keyValue; } } TLVMappedEnumConverter._valueConverter = new TLVMappedJsonIntegerCompressor(false); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGx2LW1hcHBlZC1lbnVtLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2V4dHJhL2RiaW90L3NyYy9saWIvanNvbi1jb21wcmVzc29yL3Rsdi1tYXBwZWQtZW51bS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckYsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxZQUFvQixPQUFVO1FBQVYsWUFBTyxHQUFQLE9BQU8sQ0FBRztJQUFHLENBQUM7SUFFbEMsTUFBTSxDQUNKLFFBQWlCLEVBQ2pCLFNBQTBCLElBQUksZUFBZSxFQUFFO1FBRS9DLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyRTtRQUNELE9BQU8sc0JBQXNCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDbEQsUUFBNkIsRUFDN0IsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQTRDO1FBQ2pELE1BQU0sUUFBUSxHQUNaLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixNQUFNLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxRQUE4QixDQUFDO0lBQ3hDLENBQUM7O0FBekJ1QixzQ0FBZSxHQUFHLElBQUksOEJBQThCLENBQzFFLEtBQUssQ0FDTixDQUFDIn0=