UNPKG

baasic-sdk-angular

Version:

Angular (v5+) SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).

72 lines (71 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var core_1 = require("@angular/core"); var http_1 = require("@angular/http"); var Observable_1 = require("rxjs/Observable"); require("rxjs/add/operator/toPromise"); require("rxjs/add/operator/catch"); require("rxjs/add/operator/map"); require("rxjs/add/observable/throw"); var HttpClientFactory = /** @class */ (function () { function HttpClientFactory(http) { this.http = http; } HttpClientFactory.prototype.createPromise = function (deferFn) { return new Promise(deferFn); }; HttpClientFactory.prototype.request = function (request) { var httpRequest = { withCredentials: true, method: request.method, }; if (request.headers) httpRequest.headers = new http_1.Headers(request.headers); if (request.data) httpRequest.body = request.data; return this.http.request(request.url.toString(), httpRequest) .map(function (response) { return { request: request, statusCode: response.status, statusText: response.statusText, headers: response.headers.toJSON(), data: safelyConvertToJSON(response) }; }) .catch(function (response) { if (response instanceof http_1.Response) { return Observable_1.Observable.throw({ request: request, statusCode: response.status, statusText: response.statusText, headers: response.headers.toJSON(), data: safelyConvertToJSON(response) }); } else { Observable_1.Observable.throw(response); } }) .toPromise(); function safelyConvertToJSON(response) { // json() function call fails when trying to convert empty string '' // In that case catch exception and return null. try { return response.json(); } catch (err) { return null; } } }; ; HttpClientFactory = tslib_1.__decorate([ core_1.Injectable(), tslib_1.__metadata("design:paramtypes", [http_1.Http]) ], HttpClientFactory); return HttpClientFactory; }()); exports.HttpClientFactory = HttpClientFactory; ;