import { AccessToken } from '../schemas/accessToken.generated.js'; export interface TokenStorage { /** * @param {AccessToken} token * @returns {Promise} */ store(token: AccessToken): Promise; /** * @returns {Promise} */ get(): Promise; /** * @returns {Promise} */ clear(): Promise; } export class InMemoryTokenStorage implements TokenStorage { token?: AccessToken = void 0; constructor( fields: Omit & Partial>, ) { if (fields.token !== undefined) { this.token = fields.token; } } /** * @param {AccessToken} token * @returns {Promise} */ async store(token: AccessToken): Promise { this.token = token; return void 0; } /** * @returns {Promise} */ async get(): Promise { return this.token; } /** * @returns {Promise} */ async clear(): Promise { this.token = void 0; return void 0; } }