52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.util = void 0;
|
||
|
var util;
|
||
|
(function (util) {
|
||
|
function assertNever(_x) {
|
||
|
throw new Error();
|
||
|
}
|
||
|
util.assertNever = assertNever;
|
||
|
util.arrayToEnum = (items) => {
|
||
|
const obj = {};
|
||
|
for (const item of items) {
|
||
|
obj[item] = item;
|
||
|
}
|
||
|
return obj;
|
||
|
};
|
||
|
util.getValidEnumValues = (obj) => {
|
||
|
const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number");
|
||
|
const filtered = {};
|
||
|
for (const k of validKeys) {
|
||
|
filtered[k] = obj[k];
|
||
|
}
|
||
|
return util.objectValues(filtered);
|
||
|
};
|
||
|
util.objectValues = (obj) => {
|
||
|
return util.objectKeys(obj).map(function (e) {
|
||
|
return obj[e];
|
||
|
});
|
||
|
};
|
||
|
util.objectKeys = typeof Object.keys === "function" // eslint-disable-line ban/ban
|
||
|
? (obj) => Object.keys(obj) // eslint-disable-line ban/ban
|
||
|
: (object) => {
|
||
|
const keys = [];
|
||
|
for (const key in object) {
|
||
|
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
||
|
keys.push(key);
|
||
|
}
|
||
|
}
|
||
|
return keys;
|
||
|
};
|
||
|
util.find = (arr, checker) => {
|
||
|
for (const item of arr) {
|
||
|
if (checker(item))
|
||
|
return item;
|
||
|
}
|
||
|
return undefined;
|
||
|
};
|
||
|
util.isInteger = typeof Number.isInteger === "function"
|
||
|
? (val) => Number.isInteger(val) // eslint-disable-line ban/ban
|
||
|
: (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
|
||
|
})(util = exports.util || (exports.util = {}));
|