UNPKG

@coorpacademy/squirrel

Version:
35 lines (23 loc) 1.14 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _fs = require("fs"); var _fp = require("lodash/fp"); var _rxjs = require("rxjs"); var _debug = _interopRequireDefault(require("debug")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = (0, _debug.default)('squirrel:fallback'); const readFile$ = _rxjs.Observable.bindNodeCallback(_fs.readFile); const restorePreloadedStore = preloadedStore => _rxjs.Observable.fromPromise(Promise.resolve(preloadedStore)).catch(() => _rxjs.Observable.empty()); const parseToEvent = store => ({ type: 'fetch', payload: (0, _fp.values)(store) }); const createRestorer$ = (filePath, preloadedStore) => { return readFile$(filePath, { encoding: 'UTF8' }).map(JSON.parse).filter(_fp.identity).do(() => debug(`Restore from file: ${filePath}`)).catch(() => preloadedStore ? restorePreloadedStore(preloadedStore).do(() => debug('Restore from preloadedStore')) : _rxjs.Observable.empty()).map(parseToEvent); }; var _default = createRestorer$; exports.default = _default; //# sourceMappingURL=restorer.js.map