diff options
Diffstat (limited to 'app/lib/enum.js')
| -rw-r--r-- | app/lib/enum.js | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/app/lib/enum.js b/app/lib/enum.js deleted file mode 100644 index f436c741d0..0000000000 --- a/app/lib/enum.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Enum - * @exports - * @class Enum - */ -export default class Enum { - - /** - * Creates an instance of EnumBase. - * - * @param {...string|object} ... - enum keys - * @memberOf Enum - */ - constructor() { - const items = [...arguments]; - let allKeys = []; - let reverseMap = new Map(); - - for(const item of items) { - if(typeof(item) === 'string') { - Object.defineProperty(this, item, { - enumerable: true, - value: item, - writable: false - }); - allKeys.push(item); - reverseMap.set(item, item); - } else if(typeof(item) === 'object') { - for(const key of Object.keys(item)) { - Object.defineProperty(this, key, { - enumerable: true, - value: item[key], - writable: false - }); - allKeys.push(key); - reverseMap.set(item[key], key); - } - } else { - throw new Error('Unsupported argument type: ' + typeof(item)); - } - } - - Object.defineProperty(this, 'allKeys', { - enumerable: false, - value: allKeys, - writable: false - }); - - Object.defineProperty(this, 'reverseMap', { - enumerable: false, - value: reverseMap, - writable: false - }); - - Object.freeze(this); - } - - /** - * Check if key is registered in this enum - * - * @param {string} key - * @returns {bool} - * - * @memberOf Enum - */ - isValid(key) { - return this.allKeys.includes(key); - } - - /** - * Return key for value - * - * @param {any} value - * @returns {any|undefined} returns undefined if key is not found - * - * @memberOf Enum - */ - reverse(value) { - return this.reverseMap.get(value); - } -} - |
