import { LRUCache } from "lru-cache";

// Keep a cache of anonymous session tokens against namespaces in order to re-use them
const sessionTokenCache = new LRUCache<string,string>({ max: 10000, ttl: 5*60*1000 });

export function getToken(namespace: string): string {
  return sessionTokenCache.get(namespace);
}

export function setToken(namespace: string, token: string) {
  sessionTokenCache.set(namespace, token);
}

export function clearToken(namespace: string) {
  sessionTokenCache.delete(namespace);
}

export function hasToken(namespace: string) {
  return sessionTokenCache.has(namespace);
}
