rxdb-server
Version:
RxDB Server Plugin
86 lines (85 loc) • 3.08 kB
JavaScript
;
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