const _stores = new Set(); export class Store { id; constructor(name) { name = name.toUpperCase(); if (_stores.has(name)) throw `${name} store already exists`; _stores.add(name); this.id = name; } async _has(_key) { await Promise.reject("needs implementation"); } has(key) { if (typeof key !== 'string') { key = key.toString(); } return this._has(key); } async _get(_key) { await Promise.reject("needs implementation"); } async get(key) { if (typeof key !== 'string') { key = key.toString(); } const val = await this._get(key); if (val === null) return null; return val; } async _set(_key, _val, _exp_sec = -1) { await Promise.reject("needs implementation") } set(key, val, exp_sec = -1) { if (typeof key !== 'string') { key = key.toString(); } exp_sec = Math.round(exp_sec); return this._set(key, val, exp_sec); } };