37 lines
845 B
TypeScript
37 lines
845 B
TypeScript
export type SessionData = {
|
|
id: string;
|
|
token?: string | null;
|
|
room?: string | null;
|
|
username?: string | null;
|
|
studioUrl?: string | null;
|
|
createdAt: number;
|
|
};
|
|
|
|
const sessionStore = new Map<string, SessionData>();
|
|
|
|
export function saveSession(id: string, data: Omit<Partial<SessionData>, 'id'>) {
|
|
const payload: SessionData = {
|
|
id,
|
|
token: data.token ?? null,
|
|
room: data.room ?? null,
|
|
username: data.username ?? null,
|
|
studioUrl: data.studioUrl ?? null,
|
|
createdAt: Date.now(),
|
|
};
|
|
sessionStore.set(id, payload);
|
|
return payload;
|
|
}
|
|
|
|
export function getSession(id: string): SessionData | null {
|
|
return sessionStore.get(id) || null;
|
|
}
|
|
|
|
export function deleteSession(id: string): boolean {
|
|
return sessionStore.delete(id);
|
|
}
|
|
|
|
export function listSessions() {
|
|
return Array.from(sessionStore.values());
|
|
}
|
|
|