UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

34 lines 3.13 kB
import { bufferToHexString } from '@iotize/common/byte-converter'; import { ConverterError } from '../error'; const EXPECTED_ARRAY_LENGTH = 6; export class MacAddressStringConverter { decode(body) { if (!body || body.length !== EXPECTED_ARRAY_LENGTH) { throw ConverterError.unexpectedBufferSize(EXPECTED_ARRAY_LENGTH, body); } let result = ''; for (var i = body.length - 1; i >= 0; i--) { const part = body.slice(i, i + 1); result += bufferToHexString(part).toUpperCase() + ':'; } return result.substring(0, result.length - 1); } encode(value) { const values = value .split(':') .map((v) => parseInt(v, 16) & 0xff) .reverse(); if (values.length !== EXPECTED_ARRAY_LENGTH) { throw new Error('Invalid mac address format: ' + value); } return Uint8Array.from(values); } static instance() { if (!MacAddressStringConverter._instance) { MacAddressStringConverter._instance = new MacAddressStringConverter(); } return MacAddressStringConverter._instance; } } MacAddressStringConverter._instance = undefined; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLWFkZHJlc3Mtc3RyaW5nLWRlY29kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9jbGllbnQvaW1wbC9zcmMvbGliL2NvbnZlcnRlci9ib2R5L21hYy1hZGRyZXNzLXN0cmluZy1kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFFaEMsTUFBTSxPQUFPLHlCQUF5QjtJQUs3QixNQUFNLENBQUMsSUFBZ0I7UUFDNUIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLHFCQUFxQixFQUFFO1lBQ2xELE1BQU0sY0FBYyxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQztTQUN2RDtRQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWE7UUFDekIsTUFBTSxNQUFNLEdBQUcsS0FBSzthQUNqQixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUNsQyxPQUFPLEVBQUUsQ0FBQztRQUNiLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxxQkFBcUIsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTtRQUNwQixJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFO1lBQ3hDLHlCQUF5QixDQUFDLFNBQVMsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7U0FDdkU7UUFDRCxPQUFPLHlCQUF5QixDQUFDLFNBQVMsQ0FBQztJQUM3QyxDQUFDOztBQTlCZ0IsbUNBQVMsR0FBK0IsU0FBUyxDQUFDIn0=