import { Batch } from '../../types' import { Database } from '../database.types' export class LocalStorage implements Database { #localStorage: Storage #databaseName = 'YUNO_EVENT_LOGS' constructor() { this.#localStorage = window.localStorage const database = this.#localStorage.getItem(this.#databaseName) if (database === null || database === undefined) { this.#localStorage.setItem(this.#databaseName, JSON.stringify([])) } } async reset(): Promise { this.#localStorage.setItem(this.#databaseName, JSON.stringify([])) } #getDatabase(): Batch[] { let database = this.#localStorage.getItem(this.#databaseName) if (database === null || database === undefined) { database = JSON.stringify([]) this.#localStorage.setItem(this.#databaseName, database) } return JSON.parse(database) } async setItem(item: Batch): Promise { const database = this.#getDatabase() this.#localStorage.setItem(this.#databaseName, JSON.stringify([...database, item])) } getItem(id: string): Promise { throw new Error('Method not implemented.' + id) } removeItem(id: string): Promise { throw new Error('Method not implemented.' + id) } getAllItems(): Promise { return Promise.resolve(this.#getDatabase()) } }