UNPKG

atomic-algolia

Version:

An NPM package for running atomic updates to an Algolia index

65 lines (53 loc) 1.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); module.exports = /*#__PURE__*/function () { var _getRemoteIndex = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(index) { var oldIndex; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return query(index); case 3: oldIndex = _context.sent; _context.next = 9; break; case 6: _context.prev = 6; _context.t0 = _context["catch"](0); throw _context.t0; case 9: return _context.abrupt("return", oldIndex); case 10: case "end": return _context.stop(); } } }, _callee, null, [[0, 6]]); })); function getRemoteIndex(_x) { return _getRemoteIndex.apply(this, arguments); } return getRemoteIndex; }(); function query(index) { return new Promise(function (resolve, reject) { var hits = []; index.browse("", {}, function browseDone(err, content) { if (err) return reject(err); content.hits.forEach(function (hit) { hit.objectID = String(hit.objectID); hits.push(hit); }); if (content.cursor) { index.browseFrom(content.cursor, browseDone); } else { resolve(hits); } }); }); }