Files
discord-decomp/_bundle/isEnumObject.js
T
2026-11-01 12:12:55 +02:00

69 lines
1.7 KiB
JavaScript

// Metro module 1334 (f1335).
let listEnumValues;
const isEnumObject = function isEnumObject(a0) {
if (typeof a0 === "object" && a0 !== null) {
if (!a0.hasOwnProperty(0)) {
return false;
}
for (const item of Object.keys(a0)) {
L17: {
L16: {
L15: {
const r11 = parseInt(item);
if (Number.isNaN(r11)) {
const r50 = a0[item];
if (r50 === void 0) {
break L17;
}
if (typeof r50 !== "number") {
break L16;
}
if (a0[r50] === void 0) {
break L15;
}
continue;
}
const r40 = a0[r11];
if (r40 !== void 0) {
if (a0[r40] === r11) {
continue;
}
return false;
}
return false;
}
return false;
}
return false;
}
return false;
}
return true;
}
return false;
};
listEnumValues = function listEnumValues(a0) {
if (!isEnumObject(a0)) {
throw new Error("not a typescript enum object");
}
const r26 = [];
for (const item of Object.entries(a0)) {
const [name, number] = item;
if (typeof number === "number") {
r26.push({
name,
number
});
}
}
return r26;
};
export { isEnumObject };
export { listEnumValues };
export function listEnumNames(a0) {
return listEnumValues(a0).map((item) => item.name);
}
export function listEnumNumbers(a0) {
return listEnumValues(a0).map((item) => item.number).filter((item, index, a2) => a2.indexOf(item) == index);
}