UNPKG

rxdb-server

Version:
86 lines (85 loc) 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { RxRestClient: true, createRestClient: true }; exports.RxRestClient = void 0; exports.createRestClient = createRestClient; var _utils = require("./utils.js"); Object.keys(_utils).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _utils[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _utils[key]; } }); }); var _rxjs = require("rxjs"); var _eventsource = require("eventsource"); var _utils2 = require("../../utils.js"); var RxRestClient = exports.RxRestClient = /*#__PURE__*/function () { function RxRestClient(endpointUrl, headers = {}, eventSource = _eventsource.EventSource) { this.endpointUrl = endpointUrl; this.headers = headers; this.eventSource = eventSource; } var _proto = RxRestClient.prototype; _proto.setHeaders = function setHeaders(headers) { this.headers = headers; }; _proto.handleError = function handleError(response) { if (response.error) { throw new Error('Server returned an error ' + JSON.stringify(response)); } }; _proto.query = async function query(_query) { var response = await (0, _utils.postRequest)(this.endpointUrl + '/query', _query, this.headers); this.handleError(response); return response; }; _proto.observeQuery = function observeQuery(query) { var result = new _rxjs.Subject(); var queryAsBase64 = btoa(JSON.stringify(query)); var eventSource = new this.eventSource(this.endpointUrl + '/query/observe?query=' + queryAsBase64, { withCredentials: true, /** * Sending headers is not supported by the Browser EventSource API, * only by the npm module we use. In react-native you might have * to set another EventSource implementation. * @link https://www.npmjs.com/package/eventsource */ fetch: (0, _utils2.customFetchWithFixedHeaders)(this.headers) }); eventSource.onmessage = event => { var eventData = JSON.parse(event.data); result.next(eventData); }; return result.asObservable(); }; _proto.get = function get(ids) { var response = (0, _utils.postRequest)(this.endpointUrl + '/get', ids, this.headers); this.handleError(response); return response; }; _proto.set = function set(docs) { var response = (0, _utils.postRequest)(this.endpointUrl + '/set', docs, this.headers); this.handleError(response); return response; }; _proto.delete = function _delete(ids) { var response = (0, _utils.postRequest)(this.endpointUrl + '/delete', ids, this.headers); this.handleError(response); return response; }; return RxRestClient; }(); function createRestClient(endpointUrl, headers, eventSource = _eventsource.EventSource) { return new RxRestClient(endpointUrl, headers, eventSource); } //# sourceMappingURL=index.js.map