UNPKG

getaddress-autocomplete-modal

Version:

GetAddress.io - Autocomplete modal plug-in

113 lines 3.48 kB
var _a; class Storage { } _a = Storage; Storage.key = "getaddress_saved_addresses"; Storage.save = (id, address) => { let savedAddresses = localStorage.getItem(_a.key); if (!savedAddresses || _a.isObjectEmpty(savedAddresses)) { const map = new Map(); const storedAddress = new StoredAddress(address, new Date().getTime()); map.set(id, storedAddress); const jsonMap = JSON.stringify([...map]); localStorage.setItem(_a.key, jsonMap); } else { const map = new Map(JSON.parse(savedAddresses)); if (!map.get(id)) { if (map.size >= 6) { const storedEntries = [...map.entries()].sort((a, b) => { const address1 = a[1]; const address2 = b[1]; return address1.timestamp - address2.timestamp; }); map.delete(storedEntries[0][0]); } const storedAddress = new StoredAddress(address, new Date().getTime()); map.set(id, storedAddress); const jsonMap = JSON.stringify([...map]); localStorage.setItem(_a.key, jsonMap); } } }; Storage.list = () => { let savedAddresses = localStorage.getItem(_a.key); if (!savedAddresses || _a.isObjectEmpty(savedAddresses)) { return []; } const map = new Map(JSON.parse(savedAddresses)); const addresses = [...map.entries()].map(sa => { const storedAddress = sa[1]; const id = sa[0]; return { address: storedAddress.address, id: id }; }); return addresses.reverse(); }; Storage.isObjectEmpty = (obj) => { if (!obj) { return true; } return obj === "{}" || obj === '"{}"'; }; Storage.clear = () => { localStorage.removeItem(_a.key); }; Storage.clearExpired = () => { let savedAddresses = localStorage.getItem(_a.key); if (!savedAddresses || _a.isObjectEmpty(savedAddresses)) { return; } const map = new Map(JSON.parse(savedAddresses)); let hasExpiredEntries = false; map.forEach((sa, key) => { const storedAddress = sa; let today = new Date(); var priorDate = new Date(new Date().setDate(today.getDate() - 30)); if (priorDate.getTime() > storedAddress.timestamp) { map.delete(key); hasExpiredEntries = true; } }); if (hasExpiredEntries) { if (map.size > 0) { const jsonMap = JSON.stringify([...map]); localStorage.setItem(_a.key, jsonMap); } else { localStorage.removeItem(_a.key); } } }; Storage.remove = (key) => { let savedAddresses = localStorage.getItem(_a.key); if (!savedAddresses || _a.isObjectEmpty(savedAddresses)) { return; } const map = new Map(JSON.parse(savedAddresses)); let deleted = false; map.forEach((sa, k) => { const storedAddress = sa; if (k === key) { map.delete(key); deleted = true; } }); if (deleted) { if (map.size > 0) { const jsonMap = JSON.stringify([...map]); localStorage.setItem(_a.key, jsonMap); } else { localStorage.removeItem(_a.key); } } }; export default Storage; class StoredAddress { constructor(address, timestamp) { this.address = address; this.timestamp = timestamp; } } ; //# sourceMappingURL=Storage.js.map