Something went wrong. Try again.
Embeddable matrix client for JS applications
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344import { SessionConfig, SessionConfigStore } from "./SessionStore.js";
const CLIENT_PREFIX = "wildcard";const STORE_PREFIX = CLIENT_PREFIX + "-session-store";
export class LocalStorageClientStore implements SessionConfigStore { async storeNewSessionConfig(sessionConfig: SessionConfig): Promise<string> { const sessionUuid = crypto.randomUUID(); const key = STORE_PREFIX + "-" + sessionUuid; const stringifiedConfig = JSON.stringify(sessionConfig); localStorage.setItem(key, stringifiedConfig); return sessionUuid; } async overrideExistingSessionConfig( sessionUuid: string, sessionConfig: SessionConfig, ): Promise<void> { const key = STORE_PREFIX + "-" + sessionUuid; const stringifiedConfig = JSON.stringify(sessionConfig); localStorage.setItem(key, stringifiedConfig); return; } async getSessionConfigByUuid(sessionUuid: string): Promise<SessionConfig | null> { const key = STORE_PREFIX + "-" + sessionUuid; const sessionConfigString = localStorage.getItem(key); if (sessionConfigString == null) return null; const sessionConfig = JSON.parse(sessionConfigString); return sessionConfig; } async getSessionConfigs(): Promise<Map<string, SessionConfig> | null> { if (localStorage.length == 0) return null; let sessionConfigs = new Map<string, SessionConfig>(); for (var i = 1; i < localStorage.length; i++) { let currentItemKey = localStorage.key(i); if (currentItemKey?.startsWith(STORE_PREFIX)) { const key = currentItemKey.replace(STORE_PREFIX + "-", ""); const value = JSON.parse(localStorage.getItem(currentItemKey)!); sessionConfigs.set(key, value); } } return sessionConfigs; }}