@utiliread/http 1.15.1 → 1.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,10 +39,11 @@ var HttpError = /** @class */ (function (_super) {
39
39
  configurable: true
40
40
  });
41
41
  HttpError.prototype.details = function () {
42
- var _a;
42
+ var _a, _b;
43
43
  var rawResponse = (_a = this.response) === null || _a === void 0 ? void 0 : _a.rawResponse;
44
44
  if (rawResponse && this.hasDetails) {
45
- return rawResponse.json().then(function (details) { return details; });
45
+ (_b = this.detailsPromise) !== null && _b !== void 0 ? _b : (this.detailsPromise = rawResponse.json().then(function (details) { return details; }));
46
+ return this.detailsPromise.then(function (details) { return details; });
46
47
  }
47
48
  return Promise.reject(new Error("There are no problem details in the response"));
48
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/http-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA;IAA+B,6BAAK;IAMhC,mBAAmB,UAAkB,EAAU,QAA8C;QAA9C,yBAAA,EAAA,oBAA8C;QAA7F,YACI,kBAAM,2CAAoC,UAAU,CAAE,CAAC,SAM1D;QAPkB,gBAAU,GAAV,UAAU,CAAQ;QAAU,cAAQ,GAAR,QAAQ,CAAsC;QAEzF,KAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,wEAAwE;QACxE,mJAAmJ;QACnJ,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;;IACrD,CAAC;IAZD,sBAAI,iCAAU;aAAd;;YACI,IAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5E,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAWD,2BAAO,GAAP;;QACI,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAU,OAAO,EAAjB,CAAiB,CAAC,CAAC;SAChE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrF,CAAC;IACL,gBAAC;AAAD,CAAC,AAxBD,CAA+B,KAAK,GAwBnC;AAxBY,8BAAS"}
1
+ {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/http-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA;IAA+B,6BAAK;IAQhC,mBAAmB,UAAkB,EAAU,QAA8C;QAA9C,yBAAA,EAAA,oBAA8C;QAA7F,YACI,kBAAM,2CAAoC,UAAU,CAAE,CAAC,SAM1D;QAPkB,gBAAU,GAAV,UAAU,CAAQ;QAAU,cAAQ,GAAR,QAAQ,CAAsC;QAEzF,KAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,wEAAwE;QACxE,mJAAmJ;QACnJ,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;;IACrD,CAAC;IAZD,sBAAI,iCAAU;aAAd;;YACI,IAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5E,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAWD,2BAAO,GAAP;;QACI,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,MAAA,IAAI,CAAC,cAAc,oCAAnB,IAAI,CAAC,cAAc,GAAK,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAgB,OAAO,EAAvB,CAAuB,CAAC,EAAC;YACpF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAU,OAAO,EAAjB,CAAiB,CAAC,CAAC;SACjE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrF,CAAC;IACL,gBAAC;AAAD,CAAC,AA3BD,CAA+B,KAAK,GA2BnC;AA3BY,8BAAS"}
@@ -3,6 +3,7 @@ import { ProblemDetails } from './problem-details';
3
3
  export declare class HttpError extends Error {
4
4
  statusCode: number;
5
5
  private response;
6
+ private detailsPromise?;
6
7
  get hasDetails(): boolean | undefined;
7
8
  constructor(statusCode: number, response?: HttpResponse | undefined);
8
9
  details<TDetails = ProblemDetails>(): Promise<TDetails>;
@@ -36,10 +36,11 @@ var HttpError = /** @class */ (function (_super) {
36
36
  configurable: true
37
37
  });
38
38
  HttpError.prototype.details = function () {
39
- var _a;
39
+ var _a, _b;
40
40
  var rawResponse = (_a = this.response) === null || _a === void 0 ? void 0 : _a.rawResponse;
41
41
  if (rawResponse && this.hasDetails) {
42
- return rawResponse.json().then(function (details) { return details; });
42
+ (_b = this.detailsPromise) !== null && _b !== void 0 ? _b : (this.detailsPromise = rawResponse.json().then(function (details) { return details; }));
43
+ return this.detailsPromise.then(function (details) { return details; });
43
44
  }
44
45
  return Promise.reject(new Error("There are no problem details in the response"));
45
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/http-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA;IAA+B,6BAAK;IAMhC,mBAAmB,UAAkB,EAAU,QAA8C;QAA9C,yBAAA,EAAA,oBAA8C;QAA7F,YACI,kBAAM,2CAAoC,UAAU,CAAE,CAAC,SAM1D;QAPkB,gBAAU,GAAV,UAAU,CAAQ;QAAU,cAAQ,GAAR,QAAQ,CAAsC;QAEzF,KAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,wEAAwE;QACxE,mJAAmJ;QACnJ,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;;IACrD,CAAC;IAZD,sBAAI,iCAAU;aAAd;;YACI,IAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5E,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAWD,2BAAO,GAAP;;QACI,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAU,OAAO,EAAjB,CAAiB,CAAC,CAAC;SAChE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrF,CAAC;IACL,gBAAC;AAAD,CAAC,AAxBD,CAA+B,KAAK,GAwBnC"}
1
+ {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/http-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA;IAA+B,6BAAK;IAQhC,mBAAmB,UAAkB,EAAU,QAA8C;QAA9C,yBAAA,EAAA,oBAA8C;QAA7F,YACI,kBAAM,2CAAoC,UAAU,CAAE,CAAC,SAM1D;QAPkB,gBAAU,GAAV,UAAU,CAAQ;QAAU,cAAQ,GAAR,QAAQ,CAAsC;QAEzF,KAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,wEAAwE;QACxE,mJAAmJ;QACnJ,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;;IACrD,CAAC;IAZD,sBAAI,iCAAU;aAAd;;YACI,IAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5E,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;;;OAAA;IAWD,2BAAO,GAAP;;QACI,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,MAAA,IAAI,CAAC,cAAc,oCAAnB,IAAI,CAAC,cAAc,GAAK,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAgB,OAAO,EAAvB,CAAuB,CAAC,EAAC;YACpF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAU,OAAO,EAAjB,CAAiB,CAAC,CAAC;SACjE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrF,CAAC;IACL,gBAAC;AAAD,CAAC,AA3BD,CAA+B,KAAK,GA2BnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@utiliread/http",
3
- "version": "1.15.1",
3
+ "version": "1.15.2",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",
package/src/http-error.ts CHANGED
@@ -2,6 +2,8 @@ import { HttpResponse } from './http-response';
2
2
  import { ProblemDetails } from './problem-details';
3
3
 
4
4
  export class HttpError extends Error {
5
+ private detailsPromise?: Promise<ProblemDetails>;
6
+
5
7
  get hasDetails() {
6
8
  const contentType = this.response?.rawResponse?.headers.get("Content-Type");
7
9
  return contentType?.includes("application/problem+json");
@@ -20,7 +22,8 @@ export class HttpError extends Error {
20
22
  const rawResponse = this.response?.rawResponse;
21
23
 
22
24
  if (rawResponse && this.hasDetails) {
23
- return rawResponse.json().then(details => <TDetails>details);
25
+ this.detailsPromise ??= rawResponse.json().then(details => <ProblemDetails>details);
26
+ return this.detailsPromise.then(details => <TDetails>details);
24
27
  }
25
28
 
26
29
  return Promise.reject(new Error("There are no problem details in the response"));