advent22/ui/src/lib/api.ts

63 lines
1 KiB
TypeScript
Raw Normal View History

2023-09-12 16:39:18 +00:00
export interface ConfigModel {
2023-10-31 19:18:18 +00:00
solution: {
value: string;
2023-10-31 21:36:22 +00:00
whitespace: string;
case: string;
2023-10-31 19:18:18 +00:00
clean: string;
};
2023-09-12 16:39:18 +00:00
puzzle: {
first: string;
next: string | null;
last: string;
2023-09-12 16:39:18 +00:00
end: string;
seed: string;
};
calendar: {
config_file: string;
background: string;
};
image: {
size: number;
border: number;
fonts: { file: string; size: number }[];
};
2023-10-31 21:48:27 +00:00
redis: {
host: string;
port: number;
db: number;
protocol: number;
};
2023-09-12 16:39:18 +00:00
webdav: {
url: string;
cache_ttl: number;
config_file: string;
};
}
2023-09-21 09:53:30 +00:00
export interface NumStrDict {
[key: number]: string;
2023-09-12 16:39:18 +00:00
}
2023-09-12 16:55:34 +00:00
export interface DoorSaved {
day: number;
x1: number;
y1: number;
x2: number;
y2: number;
}
export type DoorsSaved = DoorSaved[];
2023-09-21 09:53:30 +00:00
2023-09-21 12:25:23 +00:00
export type Credentials = [username: string, password: string];
2023-09-21 09:53:30 +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]);
}
}
}