UNPKG

ignite-boilerplate-andross-typescript

Version:
98 lines (97 loc) 2.7 kB
// import Realm from 'realm'; // // const Symbol = require('es6-symbol/polyfill'); // const singleton = Symbol(); // const singletonEnforcer = Symbol(); // export default class RealmPersistInterface { // realm; // _type; // items; // constructor(enforcer) { // if (enforcer !== singletonEnforcer) { // throw new Error('Cannot construct singleton'); // } // this._type = 'RealmPersistInterface'; // this.realm = Realm.open({ // path: 'redux.realm', // schema: [ // { // name: 'Item', // primaryKey: 'name', // properties: { // name: 'string', // content: 'string' // } // } // ] // }); // } // static get instance() { // if (!this[singleton]) { // this[singleton] = new RealmPersistInterface(singletonEnforcer); // } // return this[singleton]; // } // get type() { // return this._type; // } // async check() { // if (!this.items) { // this.realm = await this.realm; // this.items = this.realm.objects('Item'); // } // } // async getItem(key) { // await this.check(); // return new Promise((resolve, reject) => { // try { // const matches = this.items.filtered(`name = "${key}"`); // if (matches.length > 0 && matches[0]) { // resolve(matches[0].content); // } else { // reject(new Error(`Could not get item with key: '${key}'`)); // } // } catch (error) { // reject(error); // } // }); // }; // async setItem(key, value) { // await this.check(); // return new Promise((resolve, reject) => { // try { // this.realm.write(() => { // this.realm.create('Item', { name: key, content: value }, true); // resolve(); // }); // } catch (error) { // reject(error); // } // }); // }; // async removeItem(key) { // await this.check(); // return new Promise((resolve, reject) => { // try { // this.realm.write(() => { // const item = this.items.filtered(`name = "${key}"`); // this.realm.delete(item); // resolve(); // }); // } catch (error) { // reject(error); // } // }); // }; // async getAllKeys() { // await this.check(); // return new Promise((resolve, reject) => { // try { // const keys = this.items.map(item => item.name); // resolve(keys); // } catch (error) { // reject(error); // } // }); // }; // }