@iotize/tap
Version:
IoTize Device client for Javascript
24 lines • 2.27 kB
JavaScript
export function toEnumFromValue(mapping, value) {
let values = Object.keys(mapping).map((key) => mapping[key]);
if (values.find((v) => v.toString() === value) === undefined) {
throw new Error(`Missing value "${value}" in enum. Available keys are ${values.join(', ')}`);
}
if (value in mapping) {
// For string to number convertion
return mapping[mapping[value]];
}
return value;
}
export function toEnumType(value, mapping) {
if (!(value in mapping)) {
throw new Error(`Missing mapping for ${value}. Available: ${Object.keys(mapping).join(', ')}`);
}
return mapping[value];
}
// export function toEnumFromKey<T>(mapping: any, key: string): T {
// if (!(key in mapping)) {
// throw new Error(`Missing key "${key}" in enum. Available keys are ${Object.keys(mapping).join(', ')}`);
// }
// return mapping[mapping[key]];
// }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9pb3RpemUtc3R1ZGlvL3NyYy9saWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsZUFBZSxDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzVELElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxJQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxDQUFDLEtBQUssU0FBUyxFQUN6RTtRQUNBLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0JBQWtCLEtBQUssaUNBQWlDLE1BQU0sQ0FBQyxJQUFJLENBQ2pFLElBQUksQ0FDTCxFQUFFLENBQ0osQ0FBQztLQUNIO0lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO1FBQ3BCLGtDQUFrQztRQUNsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNoQztJQUNELE9BQU8sS0FBaUIsQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBVSxLQUFRLEVBQUUsT0FBWTtJQUN4RCxJQUFJLENBQUMsQ0FBRSxLQUFhLElBQUksT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDYix1QkFBdUIsS0FBSyxnQkFBZ0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ25FLElBQUksQ0FDTCxFQUFFLENBQ0osQ0FBQztLQUNIO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELG1FQUFtRTtBQUNuRSwrQkFBK0I7QUFDL0Isa0hBQWtIO0FBQ2xILFFBQVE7QUFDUixvQ0FBb0M7QUFDcEMsSUFBSSJ9