Code coverage report for src/http-response-message.js

Statements: 95.31% (61 / 64)      Branches: 86.84% (33 / 38)      Functions: 100% (10 / 10)      Lines: 100% (45 / 45)      Ignored: none     

All files » src/ » http-response-message.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 1161       1   1   75   1   2     1 1 75   75 75 75 75 75 75 75   75 50 50     13     25     75 75 75 42 42   75     1     12 12 1     11 2     9 5     4 3     1   2 1     1         1     1             1                                             1        
System.register(["./headers"], function (_export) {
  /*jshint -W093 */
  "use strict";
 
  var Headers, HttpResponseMessage, mimeTypes;
 
  var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Iif ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
 
  function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
  return {
    setters: [function (_headers) {
      Headers = _headers.Headers;
    }],
    execute: function () {
      HttpResponseMessage = (function () {
        function HttpResponseMessage(requestMessage, xhr, responseType, reviver) {
          _classCallCheck(this, HttpResponseMessage);
 
          this.requestMessage = requestMessage;
          this.statusCode = xhr.status;
          this.response = xhr.response || xhr.responseText;
          this.isSuccess = xhr.status >= 200 && xhr.status < 400;
          this.statusText = xhr.statusText;
          this.reviver = reviver;
          this.mimeType = null;
 
          if (xhr.getAllResponseHeaders) {
            try {
              this.headers = Headers.parse(xhr.getAllResponseHeaders());
            } catch (err) {
              //if this fails it means the xhr was a mock object so the `requestHeaders` property should be used
              Eif (xhr.requestHeaders) this.headers = { headers: xhr.requestHeaders };
            }
          } else {
            this.headers = new Headers();
          }
 
          var contentType;
          if (this.headers && this.headers.headers) contentType = this.headers.headers["Content-Type"];
          if (contentType) {
            this.mimeType = responseType = contentType.split(";")[0].trim();
            if (mimeTypes.hasOwnProperty(this.mimeType)) responseType = mimeTypes[this.mimeType];
          }
          this.responseType = responseType;
        }
 
        _createClass(HttpResponseMessage, [{
          key: "content",
          get: function () {
            try {
              if (this._content !== undefined) {
                return this._content;
              }
 
              if (this.response === undefined || this.response === null) {
                return this._content = this.response;
              }
 
              if (this.responseType === "json") {
                return this._content = JSON.parse(this.response, this.reviver);
              }
 
              if (this.reviver) {
                return this._content = this.reviver(this.response);
              }
 
              return this._content = this.response;
            } catch (e) {
              if (this.isSuccess) {
                throw e;
              }
 
              return this._content = null;
            }
          }
        }]);
 
        return HttpResponseMessage;
      })();
 
      _export("HttpResponseMessage", HttpResponseMessage);
 
      /**
       * MimeTypes mapped to responseTypes
       *
       * @type {Object}
       */
      mimeTypes = {
        "text/html": "html",
        "text/javascript": "js",
        "application/javascript": "js",
        "text/json": "json",
        "application/json": "json",
        "application/rss+xml": "rss",
        "application/atom+xml": "atom",
        "application/xhtml+xml": "xhtml",
        "text/markdown": "md",
        "text/xml": "xml",
        "text/mathml": "mml",
        "application/xml": "xml",
        "text/yml": "yml",
        "text/csv": "csv",
        "text/css": "css",
        "text/less": "less",
        "text/stylus": "styl",
        "text/scss": "scss",
        "text/sass": "sass",
        "text/plain": "txt"
      };
 
      _export("mimeTypes", mimeTypes);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2h0dHAtY2xpZW50L3NyYy9odHRwLXJlc3BvbnNlLW1lc3NhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztlQUdhLG1CQUFtQixFQWdFckIsU0FBUzs7Ozs7Ozs7eUJBbEVaLE9BQU87OztBQUVGLHlCQUFtQjtBQUNuQixpQkFEQSxtQkFBbUIsQ0FDbEIsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDO2dDQUQ1QyxtQkFBbUI7O0FBRTVCLGNBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLGNBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUM3QixjQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztBQUNqRCxjQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQ3ZELGNBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUNqQyxjQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN2QixjQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs7QUFFckIsY0FBRyxHQUFHLENBQUMscUJBQXFCLEVBQUM7QUFDM0IsZ0JBQUc7QUFDRCxrQkFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7YUFDM0QsQ0FBQSxPQUFNLEdBQUcsRUFBQzs7QUFFVCxrQkFBRyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3RFO1dBQ0YsTUFBSztBQUNKLGdCQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7V0FDOUI7O0FBRUQsY0FBSSxXQUFXLENBQUM7QUFDaEIsY0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM1RixjQUFHLFdBQVcsRUFBRTtBQUNkLGdCQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2hFLGdCQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1dBQ3JGO0FBQ0QsY0FBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDbEM7O3FCQTVCVSxtQkFBbUI7O2VBOEJuQixZQUFFO0FBQ1gsZ0JBQUc7QUFDRCxrQkFBRyxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBQztBQUM3Qix1QkFBTyxJQUFJLENBQUMsUUFBUSxDQUFDO2VBQ3RCOztBQUVELGtCQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFDO0FBQ3ZELHVCQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztlQUN0Qzs7QUFFRCxrQkFBRyxJQUFJLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBQztBQUM5Qix1QkFBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7ZUFDaEU7O0FBRUQsa0JBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQztBQUNkLHVCQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7ZUFDcEQ7O0FBRUQscUJBQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3RDLENBQUEsT0FBTSxDQUFDLEVBQUM7QUFDUCxrQkFBRyxJQUFJLENBQUMsU0FBUyxFQUFDO0FBQ2hCLHNCQUFNLENBQUMsQ0FBQztlQUNUOztBQUVELHFCQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQzdCO1dBQ0Y7OztlQXhEVSxtQkFBbUI7OztxQ0FBbkIsbUJBQW1COzs7Ozs7O0FBZ0VyQixlQUFTLEdBQUc7QUFDckIsbUJBQVcsRUFBRSxNQUFNO0FBQ25CLHlCQUFpQixFQUFFLElBQUk7QUFDdkIsZ0NBQXdCLEVBQUUsSUFBSTtBQUM5QixtQkFBVyxFQUFFLE1BQU07QUFDbkIsMEJBQWtCLEVBQUUsTUFBTTtBQUMxQiw2QkFBcUIsRUFBRSxLQUFLO0FBQzVCLDhCQUFzQixFQUFFLE1BQU07QUFDOUIsK0JBQXVCLEVBQUUsT0FBTztBQUNoQyx1QkFBZSxFQUFFLElBQUk7QUFDckIsa0JBQVUsRUFBRSxLQUFLO0FBQ2pCLHFCQUFhLEVBQUUsS0FBSztBQUNwQix5QkFBaUIsRUFBRSxLQUFLO0FBQ3hCLGtCQUFVLEVBQUUsS0FBSztBQUNqQixrQkFBVSxFQUFFLEtBQUs7QUFDakIsa0JBQVUsRUFBRSxLQUFLO0FBQ2pCLG1CQUFXLEVBQUUsTUFBTTtBQUNuQixxQkFBYSxFQUFFLE1BQU07QUFDckIsbUJBQVcsRUFBRSxNQUFNO0FBQ25CLG1CQUFXLEVBQUUsTUFBTTtBQUNuQixvQkFBWSxFQUFFLEtBQUs7T0FDcEI7OzJCQXJCVSxTQUFTIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2h0dHAtY2xpZW50L3NyYy9odHRwLXJlc3BvbnNlLW1lc3NhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmpzaGludCAtVzA5MyAqL1xuaW1wb3J0IHtIZWFkZXJzfSBmcm9tICcuL2hlYWRlcnMnO1xuXG5leHBvcnQgY2xhc3MgSHR0cFJlc3BvbnNlTWVzc2FnZSB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RNZXNzYWdlLCB4aHIsIHJlc3BvbnNlVHlwZSwgcmV2aXZlcil7XG4gICAgdGhpcy5yZXF1ZXN0TWVzc2FnZSA9IHJlcXVlc3RNZXNzYWdlO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHhoci5zdGF0dXM7XG4gICAgdGhpcy5yZXNwb25zZSA9IHhoci5yZXNwb25zZSB8fCB4aHIucmVzcG9uc2VUZXh0O1xuICAgIHRoaXMuaXNTdWNjZXNzID0geGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDQwMDtcbiAgICB0aGlzLnN0YXR1c1RleHQgPSB4aHIuc3RhdHVzVGV4dDtcbiAgICB0aGlzLnJldml2ZXIgPSByZXZpdmVyO1xuICAgIHRoaXMubWltZVR5cGUgPSBudWxsO1xuXG4gICAgaWYoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycyl7XG4gICAgICB0cnl7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IEhlYWRlcnMucGFyc2UoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtcbiAgICAgIH1jYXRjaChlcnIpe1xuICAgICAgICAvL2lmIHRoaXMgZmFpbHMgaXQgbWVhbnMgdGhlIHhociB3YXMgYSBtb2NrIG9iamVjdCBzbyB0aGUgYHJlcXVlc3RIZWFkZXJzYCBwcm9wZXJ0eSBzaG91bGQgYmUgdXNlZFxuICAgICAgICBpZih4aHIucmVxdWVzdEhlYWRlcnMpIHRoaXMuaGVhZGVycyA9IHsgaGVhZGVyczp4aHIucmVxdWVzdEhlYWRlcnMgfTtcbiAgICAgIH1cbiAgICB9ZWxzZSB7XG4gICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIH1cblxuICAgIHZhciBjb250ZW50VHlwZTtcbiAgICBpZih0aGlzLmhlYWRlcnMgJiYgdGhpcy5oZWFkZXJzLmhlYWRlcnMpIGNvbnRlbnRUeXBlID0gdGhpcy5oZWFkZXJzLmhlYWRlcnNbXCJDb250ZW50LVR5cGVcIl07XG4gICAgaWYoY29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMubWltZVR5cGUgPSByZXNwb25zZVR5cGUgPSBjb250ZW50VHlwZS5zcGxpdChcIjtcIilbMF0udHJpbSgpO1xuICAgICAgaWYobWltZVR5cGVzLmhhc093blByb3BlcnR5KHRoaXMubWltZVR5cGUpKSByZXNwb25zZVR5cGUgPSBtaW1lVHlwZXNbdGhpcy5taW1lVHlwZV07XG4gICAgfVxuICAgIHRoaXMucmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlO1xuICB9XG5cbiAgZ2V0IGNvbnRlbnQoKXtcbiAgICB0cnl7XG4gICAgICBpZih0aGlzLl9jb250ZW50ICE9PSB1bmRlZmluZWQpe1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5yZXNwb25zZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVzcG9uc2UgPT09IG51bGwpe1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCA9IHRoaXMucmVzcG9uc2U7XG4gICAgICB9XG5cbiAgICAgIGlmKHRoaXMucmVzcG9uc2VUeXBlID09PSAnanNvbicpe1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCA9IEpTT04ucGFyc2UodGhpcy5yZXNwb25zZSwgdGhpcy5yZXZpdmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5yZXZpdmVyKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQgPSB0aGlzLnJldml2ZXIodGhpcy5yZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9jb250ZW50ID0gdGhpcy5yZXNwb25zZTtcbiAgICB9Y2F0Y2goZSl7XG4gICAgICBpZih0aGlzLmlzU3VjY2Vzcyl7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9jb250ZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBNaW1lVHlwZXMgbWFwcGVkIHRvIHJlc3BvbnNlVHlwZXNcbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnQgdmFyIG1pbWVUeXBlcyA9IHtcbiAgXCJ0ZXh0L2h0bWxcIjogXCJodG1sXCIsXG4gIFwidGV4dC9qYXZhc2NyaXB0XCI6IFwianNcIixcbiAgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6IFwianNcIixcbiAgXCJ0ZXh0L2pzb25cIjogXCJqc29uXCIsXG4gIFwiYXBwbGljYXRpb24vanNvblwiOiBcImpzb25cIixcbiAgXCJhcHBsaWNhdGlvbi9yc3MreG1sXCI6IFwicnNzXCIsXG4gIFwiYXBwbGljYXRpb24vYXRvbSt4bWxcIjogXCJhdG9tXCIsXG4gIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI6IFwieGh0bWxcIixcbiAgXCJ0ZXh0L21hcmtkb3duXCI6IFwibWRcIixcbiAgXCJ0ZXh0L3htbFwiOiBcInhtbFwiLFxuICBcInRleHQvbWF0aG1sXCI6IFwibW1sXCIsXG4gIFwiYXBwbGljYXRpb24veG1sXCI6IFwieG1sXCIsXG4gIFwidGV4dC95bWxcIjogXCJ5bWxcIixcbiAgXCJ0ZXh0L2NzdlwiOiBcImNzdlwiLFxuICBcInRleHQvY3NzXCI6IFwiY3NzXCIsXG4gIFwidGV4dC9sZXNzXCI6IFwibGVzc1wiLFxuICBcInRleHQvc3R5bHVzXCI6IFwic3R5bFwiLFxuICBcInRleHQvc2Nzc1wiOiBcInNjc3NcIixcbiAgXCJ0ZXh0L3Nhc3NcIjogXCJzYXNzXCIsXG4gIFwidGV4dC9wbGFpblwiOiBcInR4dFwiXG59O1xuIl19