Something went wrong. Try again.
a simple but full-featured web player for OpenSubsonic music servers (Navidrome, Gonic, Ampache, etc) devins.page/tinysub
svelte typescript javascript subsonic gonic navidrome
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233export interface Credentials { server: string; authMode?: "token" | "password" | "apikey"; username?: string; token?: string; salt?: string; password?: string; apiKey?: string;}
const credentialsStorageKey = "tinysub_credentials";
export const getStoredCredentials = (): Credentials | null => { if (typeof localStorage === "undefined") return null;
const raw = localStorage.getItem(credentialsStorageKey); if (!raw) return null;
try { const parsed: unknown = JSON.parse(raw); return parsed && typeof parsed === "object" && "server" in parsed && typeof parsed.server === "string" && parsed.server ? (parsed as Credentials) : null; } catch (err) { console.error("failed to parse stored credentials:", err); return null; }};