change: ids to use bigint instead of string (#892)

* p1 of bigints change

* shtuff fixes and bits

* Commit from GitHub Actions (Lint)

* finish bigint structs

* typings fixes

* Commit from GitHub Actions (Lint)

* more fixes

* Commit from GitHub Actions (Lint)

* more fixes

* Commit from GitHub Actions (Lint)

* blame wolf

* Commit from GitHub Actions (Lint)

* foxed

* Commit from GitHub Actions (Lint)

* fix unit tests

* Commit from GitHub Actions (Lint)

* change: guildUpdate guild ID can't change

* delete server has been renamed to delete guild

* fixes

Co-authored-by: Skillz4Killz <Skillz4Killz@users.noreply.github.com>
Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com>
This commit is contained in:
Skillz4Killz
2021-05-03 13:05:18 -04:00
committed by GitHub
parent ee164bff22
commit 3d39b3878a
186 changed files with 1341 additions and 610 deletions

39
src/util/loop_object.ts Normal file
View File

@@ -0,0 +1,39 @@
import { eventHandlers } from "../bot.ts";
export function loopObject(
obj: Record<string, unknown>,
handler: (value: unknown, key: string) => unknown,
log: string,
) {
let res: Record<string, unknown> | unknown[] = {};
if (Array.isArray(obj)) {
res = [];
for (const o of obj) {
if (
typeof o === "object" && !Array.isArray(o) && o !== null
) {
// A nested object
res.push(loopObject(o as Record<string, unknown>, handler, log));
} else {
res.push(handler(o, "array"));
}
}
} else {
for (const [key, value] of Object.entries(obj)) {
eventHandlers.debug?.("loop", log);
if (
typeof value === "object" && !Array.isArray(value) && value !== null
) {
// A nested object
res[key] = loopObject(value as Record<string, unknown>, handler, log);
} else {
res[key] = handler(value, key);
}
}
}
return res;
}