@bitblit/ratchet-common
Version:
Common tools for general use
31 lines • 1.12 kB
JavaScript
import { $enum } from 'ts-enum-util';
import { StringRatchet } from './string-ratchet.js';
export class EnumRatchet {
static listEnumKeys(enumeration) {
const rval = $enum(enumeration).getValues();
return rval;
}
static keyToEnum(enumeration, val, caseSensitive = false) {
const e = $enum(enumeration);
let rval = null;
if (val) {
rval = e.asValueOrDefault(val, null);
if (!rval && !caseSensitive) {
const keys = EnumRatchet.listEnumKeys(enumeration);
const mKey = keys.find((k) => k.toUpperCase() === val.toUpperCase());
if (mKey) {
rval = e.asValueOrDefault(mKey, null);
}
}
}
return rval;
}
static parseCsvToEnumArray(enumeration, input) {
const split = StringRatchet.trimToEmpty(input)
.split(',')
.map((s) => s.trim());
const rval = split.map((s) => EnumRatchet.keyToEnum(enumeration, s)).filter((s) => !!s);
return rval;
}
}
//# sourceMappingURL=enum-ratchet.js.map