// Copyright 2023 @soul-wallet/extension-base authors & contributors // SPDX-License-Identifier: Apache-2.0 import { Table } from 'dexie'; import { logger as createLogger } from '@polkadot/util'; import { Logger } from '@polkadot/util/types'; export default class BaseStore { private _table: Table; public logger: Logger; constructor (table: Table) { this._table = table; this.logger = createLogger(this.constructor.name); } public get table () { return this._table; } public upsert (record: T): Promise { return this.table.put(record); } public bulkUpsert (records: T[]): Promise { return this.table.bulkPut(records); } public remove (record: T): Promise { return this.table.delete(record); } public clear (): Promise { return this.table.clear(); } }