UNPKG

@exromany/lido-csm-sdk

Version:

[![GitHub license](https://img.shields.io/github/license/lidofinance/lido-csm-sdk?color=limegreen)](https://github.com/lidofinance/lido-csm-sdk/blob/main/LICENSE.txt) [![Version npm](https://img.shields.io/npm/v/@lidofinance/lido-csm-sdk?label=version)](h

73 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanExpiredKeys = exports.isKeyExpired = exports.getFromLocalStorage = exports.saveToLocalStorage = void 0; const constants_js_1 = require("./constants.js"); const trySerializeToLocalStorage = (key, value) => { try { const item = JSON.stringify(value); localStorage.setItem(key, item); return { success: true }; } catch (error) { return { success: false, error: error, }; } }; const tryDeserializeFromLocalStorage = (key) => { try { const item = localStorage.getItem(key); if (item === null) { return { success: false, error: new Error(`Item with key "${key}" does not exist`), }; } const value = JSON.parse(item); return { success: true, value }; } catch (error) { return { success: false, error: error, }; } }; const saveToLocalStorage = (key, value) => { const result = trySerializeToLocalStorage(key, value); if (!result.success) { console.error('[keys cache localStorage] save error:', result.error); } }; exports.saveToLocalStorage = saveToLocalStorage; const getFromLocalStorage = (key) => { const result = tryDeserializeFromLocalStorage(key); if (result.success) { return result.value; } else { if (!localStorage.getItem(key)) { return null; } console.error('[keys cache localStorage] get error:', result.error); return null; } }; exports.getFromLocalStorage = getFromLocalStorage; const isKeyExpired = (timestamp) => { const now = Date.now(); const age = now - timestamp; return age >= constants_js_1.KEY_TTL_DURATION; }; exports.isKeyExpired = isKeyExpired; const cleanExpiredKeys = (keys) => { return Object.entries(keys).reduce((cleanedKeys, [pubKey, timestamp]) => { if (!(0, exports.isKeyExpired)(timestamp)) { cleanedKeys[pubKey] = timestamp; } return cleanedKeys; }, {}); }; exports.cleanExpiredKeys = cleanExpiredKeys; //# sourceMappingURL=storage.js.map