@coorpacademy/squirrel
Version:
Local mirror mecanism for ETCD
44 lines (35 loc) • 1.08 kB
JavaScript
;
exports.__esModule = true;
exports.createWatchCommand = exports.createFetchCommand = exports.parseRangeResponse = exports.parseKeyValue = void 0;
var _fp = require("lodash/fp");
const tryParse = v => {
try {
return JSON.parse(v);
} catch (err) {
return v;
}
};
const parseKeyValue = kv => {
if (kv.create_revision === '0') return {
key: kv.key.toString('utf8')
};
return {
key: kv.key.toString('utf8'),
value: tryParse(kv.value.toString('utf8')),
version: kv.mod_revision
};
};
exports.parseKeyValue = parseKeyValue;
const parseRangeResponse = (0, _fp.pipe)((0, _fp.get)('kvs'), (0, _fp.map)(parseKeyValue));
exports.parseRangeResponse = parseRangeResponse;
const createFetchCommand = rangeResponse => ({
type: 'fetch',
payload: parseRangeResponse(rangeResponse)
});
exports.createFetchCommand = createFetchCommand;
const createWatchCommand = keyValueResponse => ({
type: 'watch',
payload: [parseKeyValue(keyValueResponse)]
});
exports.createWatchCommand = createWatchCommand;
//# sourceMappingURL=command.js.map