UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

31 lines 3.02 kB
import { TapStreamReader, TapStreamWriter } from '../../frame/tap-stream-core'; function safeParseInt(v) { const res = parseInt(v); if (isNaN(res)) { throw invalidStringVersionFormatError(v); } return res; } function invalidStringVersionFormatError(version) { return new Error(`Invalid string version format for "${version}". Should be x.x.x. For example: 1.0.3.`); } export class StringVersionConverter { encode(version, stream = new TapStreamWriter()) { const parts = version.split('.'); if (parts.length !== 3) { throw invalidStringVersionFormatError(version); } stream.writeUnsigned(safeParseInt(parts[0]), 1); stream.writeUnsigned(safeParseInt(parts[1]), 1); stream.writeUnsigned(safeParseInt(parts[2]), 2); return stream.toBytes; } decode(data) { // if (!data || data.length !== 4) { // throw ConverterError.unexpectedBufferSize(4, data); // } const stream = data instanceof TapStreamReader ? data : TapStreamReader.create(data); return `${stream.readUnsigned(1)}.${stream.readUnsigned(1)}.${stream.readUnsigned(2)}`; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXZlcnNpb24tY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vY2xpZW50L2ltcGwvc3JjL2xpYi9jb252ZXJ0ZXIvYm9keS9zdHJpbmctdmVyc2lvbi1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRSxTQUFTLFlBQVksQ0FBQyxDQUFTO0lBQzdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNkLE1BQU0sK0JBQStCLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLCtCQUErQixDQUFDLE9BQWU7SUFDdEQsT0FBTyxJQUFJLEtBQUssQ0FDZCxzQ0FBc0MsT0FBTyx5Q0FBeUMsQ0FDdkYsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sc0JBQXNCO0lBQzFCLE1BQU0sQ0FDWCxPQUFlLEVBQ2YsU0FBMEIsSUFBSSxlQUFlLEVBQUU7UUFFL0MsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEQ7UUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFrQztRQUM5QyxvQ0FBb0M7UUFDcEMsMERBQTBEO1FBQzFELElBQUk7UUFDSixNQUFNLE1BQU0sR0FDVixJQUFJLFlBQVksZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FDckQsQ0FBQyxDQUNGLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRiJ9