sth-ts
Version:
An SmartHoldem API wrapper, written in TypeScript to interact with SmartHoldem blockchain.
39 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rxjs_1 = require("rxjs");
var request = require("request");
/** Based on @waldojeffers/rx-request. */
var RxRequest = /** @class */ (function () {
function RxRequest(options) {
this.req = request.defaults(options);
this.get = this.toObservable(this.req.get);
this.post = this.toObservable(this.req.post);
this.put = this.toObservable(this.req.put);
}
RxRequest.prototype.toObservable = function (method) {
return function (url, options) {
return rxjs_1.Observable.create(function (observer) {
var body = '';
method(url, options)
.on('response', function onResponse(res) {
res.setEncoding('utf8');
if (res.statusCode < 200 || res.statusCode >= 300) {
this.emit('error', {
statusCode: res.statusCode,
statusMessage: res.statusMessage,
});
}
})
.on('error', function (e) { return observer.error(e); })
.on('data', function (chunk) { return body += chunk; })
.on('end', function () {
observer.next(body);
observer.complete();
});
});
};
};
return RxRequest;
}());
exports.RxRequest = RxRequest;
//# sourceMappingURL=RxRequest.js.map