UNPKG

rxrest

Version:

RxRest a reactive REST utility

41 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const superagent = require("superagent"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); function fetch(input, init, abortCallback) { if (!(input instanceof Request)) { input = new Request(input, init); } let req = superagent[input.method.toLowerCase()](input.url); for (let header of input.headers) { req.set(header[0], header[1]); } return rxjs_1.from(input.text()) .pipe(operators_1.mergeMap(body => { req.send(body); return rxjs_1.Observable.create((observer) => { req.end(function (err, res) { if (err) { return observer.error(res); } if (res.noContent === true) { observer.next(new Response()); return observer.complete(); } res.url = input.url; let response = new Response(res.text, res); observer.next(response); observer.complete(); }); return function abort() { req.abort(); if (abortCallback) { abortCallback(req); } }; }); })); } exports.fetch = fetch; //# sourceMappingURL=fetch.js.map