UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

68 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = require("debug"); const debug = debug_1.default('main/localStorage'); debug('loading'); const fs_1 = require("fs"); const path_1 = require("path"); const userdata_1 = require("../core/userdata"); debug('modules loaded'); exports.default = () => { debug('init'); const userData = path_1.join(userdata_1.userDataDir(), 'kui-local-storage.json'); debug('userData %s', userData); let data; try { const raw = fs_1.readFileSync(userData).toString(); try { data = JSON.parse(raw); } catch (err) { debug('error parsing userData', raw); throw err; } } catch (err) { if (err.code === 'ENOENT') { data = {}; } else { debug('error reading userData'); throw err; } } debug('parsed userData'); const flush = () => { try { debug('flush'); fs_1.writeFileSync(userData, JSON.stringify(data)); debug('flush done'); } catch (err) { if (err.code === 'ENOENT') { debug('we decided not to initialize the store, but a plugin is trying to write to it'); } else { console.error(err); } } }; const self = { getItem: (key) => data[key] || null, setItem: (key, val) => { debug('setItem', key, val); data[key] = val; flush(); return val; }, removeItem: (key) => { const val = data[key]; delete data[key]; flush(); return val; } }; debug('init done'); return self; }; //# sourceMappingURL=store.js.map