UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

134 lines 10.2 kB
import { asciiStringToByteBuffer, hexStringToBuffer, } from '@iotize/common/byte-converter'; import { SPECIAL_USERS } from './default-config'; import { TapConfiguratorError } from './errors'; export function getProfileIdFromConfig(profile) { const specialUserInfo = SPECIAL_USERS.find((v) => profile.username === v.username); if (specialUserInfo) { return specialUserInfo.id; } const profileId = profile['id']; // TODO check if (profileId === undefined) { throw TapConfiguratorError.invalidConfiguration(`Profile id is required for ${profile['username']}`); } return profileId; } /** * * @param versionToCheck * @param versionToCompareTo * @returns * 1 if versionToCheck > versionToCompareTo * 0 if versionToCheck == versionToCompareTo * -1 if versionToCheck < versionToCompareTo */ export function compareVersionNumbers(versionToCheck, versionToCompareTo) { var v1parts = versionToCheck.split('.').map((v) => { const asInt = parseInt(v); if (isNaN(asInt)) { throw new Error(`Value "${versionToCheck}" is not a valid string version`); } return asInt; }); var v2parts = versionToCompareTo.split('.').map((v) => { const asInt = parseInt(v); if (isNaN(asInt)) { throw new Error(`Value "${versionToCompareTo}" is not a valid string version`); } return asInt; }); for (var i = 0; i < v1parts.length; ++i) { if (v2parts.length === i) { return 1; } if (v1parts[i] === v2parts[i]) { continue; } if (v1parts[i] > v2parts[i]) { return 1; } return -1; } if (v1parts.length != v2parts.length) { return -1; } return 0; } /** * Return true if versionToCheck >= versionToCompareTo * @param versionToCheck version to check * @param versionToCompareTo version to compare to * @returns versionToCheck >= versionToCompareTo */ export function isTapFirmwareVersionGreaterThanOrEqual(versionToCheck, versionToCompareTo) { return compareVersionNumbers(versionToCheck, versionToCompareTo) >= 0; } /** * Return true if versionToCheck <= versionToCompareTo * @param versionToCheck * @param versionToCompareTo * @returns versionToCheck <= versionToCompareTo */ export function isTapFirmwareVersionLessThanOrEqual(versionToCheck, versionToCompareTo) { return compareVersionNumbers(versionToCheck, versionToCompareTo) <= 0; } export function enumKeyToEnumValue(value, enumMapping) { return toEnum(value, enumMapping); } export function enumKeysToEnumValues(values, enumMapping) { return values.map((value) => enumKeyToEnumValue(value, enumMapping)); } /** * Convert */ export function toEnum(value, enumMapping) { if (!value) { throw new Error(`Missing first attribute for toEnum. ${Object.keys(enumMapping).join(', ')}`); } if (typeof value !== 'string') { throw new Error(`Enum key must be a string. Given: ${JSON.stringify(value)}. ${Object.keys(enumMapping).join(', ')}`); } value = value.toUpperCase(); if (!(value in enumMapping)) { throw new Error(`Missing enum value "${value}". Available: ${Object.keys(enumMapping).join(', ')}`); } return enumMapping[value]; } export function enumToString(value, mapping) { if (!(value in mapping)) { throw new Error(`Missing mapping for ${value}. Available: ${Object.keys(mapping).join(', ')}`); } return mapping[value]; } export function isSpecialProfileUsername(username) { return SPECIAL_USERS.filter((v) => username === v.username).length > 0; } export function isSpecialProfileId(id) { return SPECIAL_USERS.filter((v) => id === v.id).length > 0; } export function configValueToBytes(input) { if (input instanceof Uint8Array) { return input; } else if (typeof input === 'string') { if (input.substring(0, 2).toLowerCase() === '0x') { return hexStringToBuffer(input); } else { return asciiStringToByteBuffer(input); } } else { return Uint8Array.from(input); } } function getByAttr(filterKey, v, data) { let array; if (Array.isArray(data)) { array = data; } else { array = Object.keys(data).map((key) => data[key]); } return array.filter((value) => value[filterKey] == v)[0] || undefined; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRvci9zcmMvbGliL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSwrQkFBK0IsQ0FBQztBQVF2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUWhELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUF5QjtJQUM5RCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUN4QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUN2QyxDQUFDO0lBQ0YsSUFBSSxlQUFlLEVBQUU7UUFDbkIsT0FBTyxlQUFlLENBQUMsRUFBRSxDQUFDO0tBQzNCO0lBQ0QsTUFBTSxTQUFTLEdBQXdCLE9BQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWE7SUFDM0UsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQzNCLE1BQU0sb0JBQW9CLENBQUMsb0JBQW9CLENBQzdDLDhCQUE4QixPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDcEQsQ0FBQztLQUNIO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxjQUFzQixFQUN0QixrQkFBMEI7SUFFMUIsSUFBSSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxLQUFLLENBQUMsS0FB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