Files
CT/src/Model/storageModel.ts
T

44 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-07-19 18:26:04 +02:00
// this file is responsible for reading and writing persistent data; all storage shall be handled by this file.
import { parse, stringify } from "../utility";
2024-07-19 18:39:13 +02:00
// keys
export enum storageKeys {
// current
2024-07-19 18:52:58 +02:00
socketAddress = "v2-socket-address",
2024-07-19 18:39:13 +02:00
// settings
2024-07-19 18:52:58 +02:00
userName = "v2-user-name",
firstDayOfWeek = "v2-first-day-of-week",
2024-07-19 18:39:13 +02:00
// history
2024-07-19 18:52:58 +02:00
previousAddresses = "v2-previous-addresses",
previousObjectCategories = "v2-object-categories",
previousObjectStatuses = "v2-object-statuses",
previousObjectFilters = "v2-object-filters",
2024-07-19 18:39:13 +02:00
}
2024-07-19 18:26:04 +02:00
// basic
export function store(key: string, value: string): void {
localStorage.setItem(key, value);
}
export function restore(key: string): string | null {
return localStorage.getItem(key);
}
// array
export function storeArray(key: string, value: any[]): void {
const valueString = stringify(value);
store(key, valueString);
}
export function restoreArray(key: string): any[] | null {
const valueString = restore(key);
if (!valueString) return null;
const parsed = parse(valueString);
if (!Array.isArray(parsed)) return null;
return parsed;
}