deno.land / x / masx200_leetcode_test@10.6.5 / design-authentication-manager / index.ts
123456789101112131415161718192021222324252627282930313233343536import { MapWithExpires,} from "https://deno.land/x/masx200_deno_caddy_cluster_reverse_proxy@3.0.2/MapWithExpires.ts";
class AuthenticationManager { #map = new MapWithExpires<string, { expires: number }>(); constructor(public timeToLive: number) {}
generate(tokenId: string, currentTime: number): void { // console.log('generate') // console.log(this.#map) this.#map.set(tokenId, { expires: currentTime + this.timeToLive }); }
renew(tokenId: string, currentTime: number): void { // console.log('renew') // console.log(this.#map) if (this.#map.has(tokenId, currentTime)) { // console.log(tokenId,currentTime,true) this.generate(tokenId, currentTime); } else { // console.log(tokenId,currentTime,false) return; } }
countUnexpiredTokens(currentTime: number): number { // console.log('countUnexpiredTokens',currentTime) // console.log(this.#map) this.#map.clean_expires(currentTime); // console.log(this.#map) return this.#map.size; }}export default AuthenticationManager;
Version Info