UNPKG

pogo-data-generator

Version:
45 lines (44 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveEnumId = resolveEnumId; exports.resolveEnumIds = resolveEnumIds; exports.enumName = enumName; function resolveEnumId(enumObject, value, label = 'value') { if (value === undefined || value === null || value === '') return undefined; if (typeof value === 'number') return value; if (/^\d+$/.test(value)) return +value; const resolved = enumObject[value]; if (typeof resolved === 'number') return resolved; console.warn(`Unable to resolve ${label}`, value); return undefined; } function resolveEnumIds(enumObject, values = [], label = 'value') { return values .map((value) => resolveEnumId(enumObject, value, label)) .filter((value) => value !== undefined) .sort((a, b) => a - b); } function enumName(enumObject, value, label = 'value') { if (value === undefined || value === null || value === '') return undefined; if (typeof value === 'string') { if (/^\d+$/.test(value)) return enumName(enumObject, +value, label); if (enumObject[value] !== undefined) return value; console.warn(`Unable to resolve ${label}`, value); return undefined; } if (typeof enumObject[value] === 'string') { return enumObject[value]; } const matchedEntry = Object.entries(enumObject).find(([key, enumValue]) => !/^\d+$/.test(key) && enumValue === value); if (matchedEntry) return matchedEntry[0]; console.warn(`Unable to resolve ${label}`, value); return undefined; }