advent22/ui/src/lib/helpers.ts

30 lines
594 B
TypeScript
Raw Normal View History

2024-08-23 18:21:32 +00:00
import { APIError } from "./api_error";
2024-08-23 16:38:04 +00:00
export function objForEach<T>(
obj: T,
f: (k: keyof T, v: T[keyof T]) => void,
): void {
for (const k in obj) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
f(k, obj[k]);
}
}
}
2024-08-23 18:21:32 +00:00
export type Loading<T> = T | "loading" | "error";
export function loading_success<T>(o: Loading<T>): o is T {
if (o === "loading") return false;
if (o === "error") return false;
return true;
}
export function handle_error(error: unknown) {
if (error instanceof APIError) {
error.alert();
} else {
console.error(error);
}
}