@coorpacademy/squirrel
Version:
Local mirror mecanism for ETCD
57 lines (44 loc) • 1.32 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _fp = require("lodash/fp");
var _debug = _interopRequireDefault(require("debug"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const debug = (0, _debug.default)('squirrel');
const createAPI = (store, client) => {
const getAll = index => {
debug(`getAll => ${index}`);
return store('indexes').then((0, _fp.pipe)((0, _fp.getOr)({}, index), _fp.keys));
};
const getByRaw = (index, key) => {
debug(`getBy: ${index} => ${key}`);
return store('indexes').then((0, _fp.getOr)(null, [index, key]));
};
const getBy = (index, key) => {
debug(`getBy: ${index} => ${key}`);
return getByRaw(index, key).then((0, _fp.getOr)(null, ['value']));
};
const get = key => {
debug(`get => ${key}`);
return store('records').then((0, _fp.getOr)(null, key));
};
const set = (key, value) => {
debug(`set => ${key}`);
return client.put(key).value(JSON.stringify(value)).then(() => value);
};
const del = key => {
debug(`del => ${key}`);
return client.delete().key(key);
};
return {
getBy,
getByRaw,
getAll,
get,
set,
del
};
};
var _default = createAPI;
exports.default = _default;
//# sourceMappingURL=api.js.map