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