advent22/ui/src/lib/api.ts

49 lines
825 B
TypeScript

export interface ConfigModel {
puzzle: {
solution: string;
first: string;
next: string | null;
last: string;
end: string;
seed: string;
};
calendar: {
config_file: string;
background: string;
};
image: {
size: number;
border: number;
fonts: { file: string; size: number }[];
};
webdav: {
url: string;
cache_ttl: number;
config_file: string;
};
}
export interface NumStrDict {
[key: number]: string;
}
export interface DoorSaved {
day: number;
x1: number;
y1: number;
x2: number;
y2: number;
}
export type DoorsSaved = DoorSaved[];
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]);
}
}
}