1window.BaseService = { 2 buildRequestKey: function (method, url, data) { 3 return method + '|' + url; 4 }, 5 6 post: function (url, data) { 7 const key = this.buildRequestKey('POST', url, data); 8 9 return RequestGuard.run(key, function () { 10 return HttpClient.post(url, data) 11 .catch(function (err) { 12 const xhr = err.xhr || err; 13 const status = err.status; 14 const error = err.error; 15 16 BaseService.handleError(xhr, status, error); 17 throw err; 18 }); 19 }); 20 }, 21 22 get: function (url) { 23 const key = this.buildRequestKey('GET', url); 24 25 return RequestGuard.run(key, function () { 26 return HttpClient.get(url) 27 .catch(function (err) { 28 const xhr = err.xhr || err; 29 const status = err.status; 30 const error = err.error; 31 32 BaseService.handleError(xhr, status, error); 33 throw err; 34 }); 35 }); 36 }, 37 38 handleError: function (xhr, status, error) { 39 if (status === 'timeout') { 40 console.warn('Request timeout'); 41 } 42 if (xhr && xhr.status >= 500) { 43 console.error('Server error', xhr.responseText); 44 } 45 } 46};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.