@thisisagile/easy 8.46.0 → 9.0.0

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.
@@ -6,5 +6,6 @@ export declare type Request = {
6
6
  verb: HttpVerb;
7
7
  body?: unknown;
8
8
  transform?: (r: any) => any;
9
+ transformError?: (r: any) => any;
9
10
  options?: RequestOptions;
10
11
  };
@@ -3,10 +3,10 @@ import { RequestOptions, RequestProvider, Response } from '../http';
3
3
  export declare class Api {
4
4
  readonly provider: RequestProvider;
5
5
  constructor(provider?: RequestProvider);
6
- get: (uri: Uri, options?: RequestOptions, transform?: ((r: any) => any) | undefined) => Promise<Response>;
7
- post: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined) => Promise<Response>;
8
- put: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined) => Promise<Response>;
9
- patch: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined) => Promise<Response>;
10
- delete: (uri: Uri, options?: RequestOptions, transform?: ((b: any) => any) | undefined) => Promise<Response>;
6
+ get: (uri: Uri, options?: RequestOptions, transform?: ((r: any) => any) | undefined, transformError?: (r: any) => any) => Promise<Response>;
7
+ post: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined, transformError?: (r: any) => any) => Promise<Response>;
8
+ put: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined, transformError?: (r: any) => any) => Promise<Response>;
9
+ patch: (uri: Uri, body?: unknown, options?: RequestOptions, transform?: ((r: any) => any) | undefined, transformError?: (r: any) => any) => Promise<Response>;
10
+ delete: (uri: Uri, options?: RequestOptions, transform?: ((b: any) => any) | undefined, transformError?: (r: any) => any) => Promise<Response>;
11
11
  }
12
12
  export declare const api: Api;
@@ -6,11 +6,11 @@ const AxiosProvider_1 = require("./AxiosProvider");
6
6
  class Api {
7
7
  constructor(provider = new AxiosProvider_1.AxiosProvider()) {
8
8
  this.provider = provider;
9
- this.get = (uri, options = http_1.RequestOptions.Json, transform) => this.provider.execute({ uri, verb: http_1.HttpVerb.Get, transform, options });
10
- this.post = (uri, body, options = http_1.RequestOptions.Json, transform) => this.provider.execute({ uri, verb: http_1.HttpVerb.Post, body, transform, options });
11
- this.put = (uri, body, options = http_1.RequestOptions.Json, transform) => this.provider.execute({ uri, verb: http_1.HttpVerb.Put, body, transform, options });
12
- this.patch = (uri, body, options = http_1.RequestOptions.Json, transform) => this.provider.execute({ uri, verb: http_1.HttpVerb.Patch, body, transform, options });
13
- this.delete = (uri, options = http_1.RequestOptions.Json, transform) => this.provider.execute({ uri, verb: http_1.HttpVerb.Delete, transform, options });
9
+ this.get = (uri, options = http_1.RequestOptions.Json, transform, transformError = (r) => r) => this.provider.execute({ uri, verb: http_1.HttpVerb.Get, transform, transformError, options });
10
+ this.post = (uri, body, options = http_1.RequestOptions.Json, transform, transformError = (r) => r) => this.provider.execute({ uri, verb: http_1.HttpVerb.Post, body, transform, transformError, options });
11
+ this.put = (uri, body, options = http_1.RequestOptions.Json, transform, transformError = (r) => r) => this.provider.execute({ uri, verb: http_1.HttpVerb.Put, body, transform, transformError, options });
12
+ this.patch = (uri, body, options = http_1.RequestOptions.Json, transform, transformError = (r) => r) => this.provider.execute({ uri, verb: http_1.HttpVerb.Patch, body, transform, transformError, options });
13
+ this.delete = (uri, options = http_1.RequestOptions.Json, transform, transformError = (r) => r) => this.provider.execute({ uri, verb: http_1.HttpVerb.Delete, transform, transformError, options });
14
14
  }
15
15
  }
16
16
  exports.Api = Api;
@@ -1 +1 @@
1
- {"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/services/Api.ts"],"names":[],"mappings":";;;AACA,kCAA8E;AAC9E,mDAAgD;AAEhD,MAAa,GAAG;IACd,YAAqB,WAA4B,IAAI,6BAAa,EAAE;QAA/C,aAAQ,GAAR,QAAQ,CAAuC;QAEpE,QAAG,GAAG,CAAC,GAAQ,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAqB,EAAE,CAChH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzE,SAAI,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAqB,EAAE,CACjI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhF,QAAG,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAqB,EAAE,CAChI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/E,UAAK,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAqB,EAAE,CAClI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjF,WAAM,GAAG,CAAC,GAAQ,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAqB,EAAE,CACnH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAfL,CAAC;CAgBzE;AAjBD,kBAiBC;AAEY,QAAA,GAAG,GAAQ,IAAI,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/services/Api.ts"],"names":[],"mappings":";;;AACA,kCAA8E;AAC9E,mDAAgD;AAEhD,MAAa,GAAG;IACd,YAAqB,WAA4B,IAAI,6BAAa,EAAE;QAA/C,aAAQ,GAAR,QAAQ,CAAuC;QAEpE,QAAG,GAAG,CAAC,GAAQ,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAE,iBAAiB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAqB,EAAE,CAChJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzF,SAAI,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAE,iBAAiB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAqB,EAAE,CACjK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhG,QAAG,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAE,iBAAiB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAqB,EAAE,CAChK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/F,UAAK,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAE,iBAAiB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAqB,EAAE,CAClK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjG,WAAM,GAAG,CAAC,GAAQ,EAAE,UAA0B,qBAAc,CAAC,IAAI,EAAE,SAA2B,EAAE,iBAAiB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAqB,EAAE,CACnJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IAfrB,CAAC;CAgBzE;AAjBD,kBAiBC;AAEY,QAAA,GAAG,GAAQ,IAAI,GAAG,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { Request, RequestProvider, Response } from '../http';
2
2
  export declare class AxiosProvider implements RequestProvider {
3
- execute: ({ uri, verb, body, transform, options }: Request) => Promise<Response>;
3
+ execute: ({ uri, verb, body, transform, transformError, options }: Request) => Promise<Response>;
4
4
  }
@@ -16,7 +16,7 @@ const asResponse = (uri, verb, error) => (0, utils_1.choose)(error)
16
16
  .else(e => (0, http_1.toResponse)(http_1.HttpStatus.InternalServerError, (0, types_1.toResult)(e.message, uri.path, uri)));
17
17
  class AxiosProvider {
18
18
  constructor() {
19
- this.execute = ({ uri, verb, body, transform = (r) => r, options = http_1.RequestOptions.Json }) => axios_1.default
19
+ this.execute = ({ uri, verb, body, transform = (r) => r, transformError = (r) => r, options = http_1.RequestOptions.Json }) => axios_1.default
20
20
  .request({
21
21
  url: uri.toString(),
22
22
  method: verb.toString(),
@@ -24,7 +24,7 @@ class AxiosProvider {
24
24
  data: options.type.encode(body),
25
25
  })
26
26
  .then(r => (0, http_1.toResponse)(r.status, transform(r.data), r.headers))
27
- .catch(e => Promise.reject(asResponse(uri, verb, e)));
27
+ .catch(e => Promise.reject(asResponse(uri, verb, transformError(e))));
28
28
  }
29
29
  }
30
30
  exports.AxiosProvider = AxiosProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,kCAA6H;AAC7H,oCAAkE;AAClE,oCAAkC;AAElC,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAuB,KAAK,CAAC;KAChC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IAA1B;QACE,YAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,qBAAc,CAAC,IAAI,EAAW,EAAqB,EAAE,CACtH,eAAK;aACF,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAC7D,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;CAAA;AAXD,sCAWC"}
1
+ {"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,kCAA6H;AAC7H,oCAAkE;AAClE,oCAAkC;AAElC,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAuB,KAAK,CAAC;KAChC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IAA1B;QACE,YAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,qBAAc,CAAC,IAAI,EAAW,EAAqB,EAAE,CACtJ,eAAK;aACF,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAChC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAC7D,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;CAAA;AAXD,sCAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.46.0",
3
+ "version": "9.0.0",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -31,17 +31,17 @@
31
31
  "access": "public"
32
32
  },
33
33
  "devDependencies": {
34
- "@thisisagile/easy-test": "8.46.0",
34
+ "@thisisagile/easy-test": "9.0.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.8",
37
37
  "@types/validator": "^13.7.2"
38
38
  },
39
39
  "dependencies": {
40
- "@types/uuid": "^8.3.3",
41
- "axios": "^0.24.0",
42
- "form-urlencoded": "^6.0.5",
40
+ "@types/uuid": "^8.3.4",
41
+ "axios": "^0.26.1",
42
+ "form-urlencoded": "^6.0.6",
43
43
  "jsonwebtoken": "^8.5.1",
44
- "moment": "^2.29.1",
44
+ "moment": "^2.29.2",
45
45
  "reflect-metadata": "^0.1.13",
46
46
  "uuid": "^8.3.2",
47
47
  "validator": "^13.7.0"
@@ -7,5 +7,6 @@ export type Request = {
7
7
  verb: HttpVerb;
8
8
  body?: unknown;
9
9
  transform?: (r: any) => any;
10
+ transformError?: (r: any) => any;
10
11
  options?: RequestOptions;
11
12
  };
@@ -5,20 +5,20 @@ import { AxiosProvider } from './AxiosProvider';
5
5
  export class Api {
6
6
  constructor(readonly provider: RequestProvider = new AxiosProvider()) {}
7
7
 
8
- get = (uri: Uri, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any): Promise<Response> =>
9
- this.provider.execute({ uri, verb: HttpVerb.Get, transform, options });
8
+ get = (uri: Uri, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> =>
9
+ this.provider.execute({ uri, verb: HttpVerb.Get, transform, transformError, options });
10
10
 
11
- post = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any): Promise<Response> =>
12
- this.provider.execute({ uri, verb: HttpVerb.Post, body, transform, options });
11
+ post = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> =>
12
+ this.provider.execute({ uri, verb: HttpVerb.Post, body, transform, transformError, options });
13
13
 
14
- put = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any): Promise<Response> =>
15
- this.provider.execute({ uri, verb: HttpVerb.Put, body, transform, options });
14
+ put = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> =>
15
+ this.provider.execute({ uri, verb: HttpVerb.Put, body, transform, transformError, options });
16
16
 
17
- patch = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any): Promise<Response> =>
18
- this.provider.execute({ uri, verb: HttpVerb.Patch, body, transform, options });
17
+ patch = (uri: Uri, body?: unknown, options: RequestOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> =>
18
+ this.provider.execute({ uri, verb: HttpVerb.Patch, body, transform, transformError, options });
19
19
 
20
- delete = (uri: Uri, options: RequestOptions = RequestOptions.Json, transform?: (b: any) => any): Promise<Response> =>
21
- this.provider.execute({ uri, verb: HttpVerb.Delete, transform, options });
20
+ delete = (uri: Uri, options: RequestOptions = RequestOptions.Json, transform?: (b: any) => any, transformError = (r: any) => r): Promise<Response> =>
21
+ this.provider.execute({ uri, verb: HttpVerb.Delete, transform, transformError, options });
22
22
  }
23
23
 
24
24
  export const api: Api = new Api();
@@ -15,7 +15,7 @@ const asResponse = (uri: Uri, verb: HttpVerb, error: AxiosError): Response =>
15
15
  .else(e => toResponse(HttpStatus.InternalServerError, toResult(e.message, uri.path, uri)));
16
16
 
17
17
  export class AxiosProvider implements RequestProvider {
18
- execute = ({ uri, verb, body, transform = (r: any) => r, options = RequestOptions.Json }: Request): Promise<Response> =>
18
+ execute = ({ uri, verb, body, transform = (r: any) => r, transformError = (r: any) => r, options = RequestOptions.Json }: Request): Promise<Response> =>
19
19
  axios
20
20
  .request({
21
21
  url: uri.toString(),
@@ -24,5 +24,5 @@ export class AxiosProvider implements RequestProvider {
24
24
  data: options.type.encode(body),
25
25
  })
26
26
  .then(r => toResponse(r.status, transform(r.data), r.headers))
27
- .catch(e => Promise.reject(asResponse(uri, verb, e)));
27
+ .catch(e => Promise.reject(asResponse(uri, verb, transformError(e))));
28
28
  }