UNPKG

yalento

Version:

An awesome integration of Google Firebase for Angular and Node

78 lines (77 loc) 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LocalStorageConnector = void 0; const rxjs_1 = require("rxjs"); const AbstractConnector_1 = require("./AbstractConnector"); class LocalStorageConnector extends AbstractConnector_1.AbstractConnector { constructor(repository, storage, options) { super(repository); this.lastSql = ''; this.options = options ? options : {}; this.storage = storage; } add(items) { const promises = []; items.forEach((item) => { promises.push(this.storage.set(item.getUuid(), Object.assign(Object.assign({}, item._toPlain()), { __timestamp: new Date().getTime() }))); }); return Promise.all(promises); } remove(items) { const promises = []; items.forEach((item) => { promises.push(this.storage.remove(item.getUuid())); }); return Promise.all(promises); } update(items) { return this.add(items); } select(sql) { if (this.lastSql !== sql) { const results = []; this.storage .forEach((value, key, iterationNumber) => { results.push(value); }) .then(() => { this.repository .createMany(results, '', 'localStorage') .then() .catch((e) => { throw e; }); }); } this.lastSql = sql; } selectOneByIdentifier(identifier) { return new Promise((resolve, reject) => { this.storage.get(identifier).then((value) => { if (value) { this.repository .create(value, identifier, undefined, 'localStorage') .then((e) => { resolve(e); }) .catch(() => { reject(); }); } else { reject(); } }); }); } disconnect() { // no implementation needed } getUserUuid() { return rxjs_1.of(''); } isPrivateMode() { return false; } } exports.LocalStorageConnector = LocalStorageConnector;