@coorpacademy/squirrel
Version:
Local mirror mecanism for ETCD
33 lines (22 loc) • 1.15 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _querystring = require("querystring");
var _path = require("path");
var _fs = require("fs");
var _mkdirp = _interopRequireDefault(require("mkdirp"));
var _rxjs = require("rxjs");
var _promisify = _interopRequireDefault(require("./promisify"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const mkdirpP = (0, _promisify.default)(_mkdirp.default);
const readFileP = (0, _promisify.default)(_fs.readFile);
const readdirP = (0, _promisify.default)(_fs.readdir);
const restore = async (client, inDir) => {
await mkdirpP(inDir);
return _rxjs.Observable.fromPromise(readdirP(inDir)).concatMap(_rxjs.Observable.from).mergeMap(file => _rxjs.Observable.fromPromise(readFileP((0, _path.join)(inDir, file), {
encoding: 'utf8'
})).map(JSON.parse).map(content => [(0, _querystring.unescape)(file), content])).mergeMap(([key, value]) => _rxjs.Observable.fromPromise(client.put(key).value(JSON.stringify(value, null, 4)))).toPromise();
};
var _default = restore;
exports.default = _default;
//# sourceMappingURL=restore.js.map