UNPKG

cc-znp

Version:

The interface for a host to communicate with TI CC253X Zigbee Network Processor(ZNP) over a serial port.

45 lines (44 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const id = (x) => x; class Enum { constructor(obj, fn) { this.keys = new Map(); this.values = new Map(); this.byKey = new Map(); this.byValue = new Map(); this.enums = []; const { keys, values, byKey, byValue, enums } = this; for (const key in obj) { const value = fn ? fn(obj[key]) : obj[key]; const item = { key, value }; keys.set(value, key); values.set(key, value); byKey.set(key, item); byValue.set(value, item); enums.push(item); } } /** * Attempt to get a key-value entry, by key or value. * Prioritizes key over value in case of conflict. */ get(key) { return this.byKey.get(key) || this.byValue.get(key); } /** * Attempt to get a key, by key or value. * Prioritizes key over value in case of conflict. */ getKey(query) { return ((this.values.has(query) && query) || this.keys.get(query)); } /** * Attempt to get a value, by key or value. * Prioritizes **value** in case of conflict. */ getValue(query) { return ((this.keys.has(query) && query) || this.values.get(query)); } } exports.Enum = Enum;