Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x | /** * Interface storage adapters should implement. * * Storage adapters are responsible for persisting [[Session]]s and can optionally be * passed to the [[SessionKit]] constructor to auto-persist sessions. */ export interface SessionStorage { /** Write string to storage at key. Should overwrite existing values without error. */ write(key: string, data: string): Promise<void> /** Read key from storage. Should return `null` if key can not be found. */ read(key: string): Promise<string | null> /** Delete key from storage. Should not error if deleting non-existing key. */ remove(key: string): Promise<void> } export class BrowserLocalStorage implements SessionStorage { constructor(readonly keyPrefix: string = '') {} async write(key: string, data: string): Promise<void> { localStorage.setItem(this.storageKey(key), data) } async read(key: string): Promise<string | null> { return localStorage.getItem(this.storageKey(key)) } async remove(key: string): Promise<void> { localStorage.removeItem(this.storageKey(key)) } storageKey(key: string) { return `wharf-${this.keyPrefix}-${key}` } } |