import { writable } from "svelte/store"; import type { FlightParameters, RawTelemetry, Telemetry } from "./types"; import type { RawPrediction, Prediction } from "./types"; import type { SavedPoint, SavedFlightProfile, SavedScenario } from "./types"; export const readLocalStorage = (key: string, defaultValue: T): T => { const item = localStorage.getItem(key); if (item) { try { const parsed = JSON.parse(item); if (typeof parsed === "object" && parsed !== null) { return parsed as T; } } catch (error) { console.error(`Error parsing ${key} from localStorage:`, error); } } return defaultValue; }; export const writeLocalStorage = (key: string, value: T): void => { try { localStorage.setItem(key, JSON.stringify(value)); } catch (error) { console.error(`Error writing ${key} to localStorage:`, error); } } export const clearLocalStorage = (key: string): void => { try { localStorage.removeItem(key); } catch (error) { console.error(`Error clearing ${key} from localStorage:`, error); } } export const flightParametersDefaults: FlightParameters = { ascent_rate: 5.0, burst_altitude: 30000.0, dataset: "", descent_rate: 5.0, format: "json", launch_altitude: 0.0, launch_latitude: 62.1234, launch_longitude: 129.1234, profile: "standard_profile", version: 2, }; export const FlightParametersStore = writable( readLocalStorage("flightParameters", flightParametersDefaults) ); export const templateDataDefaults = { description: "", prediction_mode: "", model: "", dataset: "", flight_parameters: flightParametersDefaults, }; export const scenarioDefaults: SavedScenario = { id: -1, name: "Новый сценарий", ...templateDataDefaults, } export const ScenarioStore = writable( readLocalStorage("scenario", scenarioDefaults as SavedScenario) ); export const RawTelemetryStore = writable( readLocalStorage("rawTelemetry", {} as RawTelemetry) ); export const TelemetryStore = writable( readLocalStorage("telemetry", {} as Telemetry) ); export const RawPredictionStore = writable( readLocalStorage("rawPrediction", {} as RawPrediction) ); export const PredictionStore = writable( readLocalStorage("prediction", {} as Prediction) ); export const SavedPointsStore = writable([]); // stub export const SavedFlightProfilesStore = writable([]); // stub export const SavedScenarioStore = writable([]);