@coorpacademy/squirrel
Version:
Local mirror mecanism for ETCD
34 lines (22 loc) • 1.07 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _querystring = require("querystring");
var _path = require("path");
var _fs = require("fs");
var _rxjs = require("rxjs");
var _mkdirp = _interopRequireDefault(require("mkdirp"));
var _command = require("../../etcd/command");
var _promisify = _interopRequireDefault(require("./promisify"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const mkdirpP = (0, _promisify.default)(_mkdirp.default);
const writeFileP = (0, _promisify.default)(_fs.writeFile);
const dump = async (client, outDir) => {
await mkdirpP(outDir);
return _rxjs.Observable.fromPromise(client.getAll().exec()).map(_command.parseRangeResponse).concatMap(_rxjs.Observable.from).mergeMap(record => _rxjs.Observable.fromPromise(writeFileP((0, _path.join)(outDir, (0, _querystring.escape)(record.key)), JSON.stringify(record.value, null, 2), {
encoding: 'utf8'
}))).toPromise();
};
var _default = dump;
exports.default = _default;
//# sourceMappingURL=dump.js.map