@coorpacademy/squirrel
Version:
Local mirror mecanism for ETCD
62 lines (52 loc) • 1.36 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _etcd = require("@coorpacademy/etcd3");
var _debug = _interopRequireDefault(require("debug"));
var _records = _interopRequireDefault(require("./store/records"));
var _store = _interopRequireDefault(require("./store"));
var _api = _interopRequireDefault(require("./api"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const debug = (0, _debug.default)('squirrel');
const createSquirrel = ({
// etcd
hosts = ['http://127.0.0.1:2379'],
credentials,
auth,
namespace = '',
// fs
fallback,
preloadedStore,
save = true,
// index
indexes = [],
// GRPC
retry = true,
grpcOptions = {}
} = {}) => {
debug('Init');
const client = new _etcd.Etcd3({
hosts,
auth,
credentials,
retry,
grpcOptions
});
const namespacedClient = namespace ? client.namespace(namespace) : client;
const records$ = (0, _records.default)(namespacedClient, {
fallback,
preloadedStore,
save
});
const {
store,
subscription
} = (0, _store.default)(records$, indexes);
const api = (0, _api.default)(store, namespacedClient);
return { ...api,
close: () => subscription.unsubscribe()
};
};
var _default = createSquirrel;
exports.default = _default;
//# sourceMappingURL=index.js.map