export class CookieParser { private rawCookies: string; private cookies: Record; constructor(rawCookies: string) { this.rawCookies = rawCookies; this.cookies = {}; this.parse(); } parse(): Record { return this.rawCookies.split("; ").reduce( (acc, cookie) => { const [key, value] = cookie.split("="); acc[key] = decodeURIComponent(value); return acc; }, {} as Record, ); } get(key: string, formatter?: Function): string | undefined { const value = this.cookies[key]; if (formatter) return formatter(value); return value; } }