@iotize/tap
Version:
IoTize Device client for Javascript
23 lines • 2.3 kB
JavaScript
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=