@internxt/sdk 1.12.2 → 1.12.3

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.
@@ -1,8 +1,21 @@
1
+ import { AxiosResponse, InternalAxiosRequestConfig } from 'axios';
1
2
  import { Headers, Parameters, RequestCanceler, URL, UnauthorizedCallback } from './types';
2
3
  export { RequestCanceler } from './types';
4
+ export interface CustomInterceptor {
5
+ request?: {
6
+ onFulfilled?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;
7
+ onRejected?: (error: unknown) => unknown;
8
+ };
9
+ response?: {
10
+ onFulfilled?: (response: AxiosResponse) => AxiosResponse;
11
+ onRejected?: (error: unknown) => unknown;
12
+ };
13
+ }
3
14
  export declare class HttpClient {
4
15
  private readonly axios;
5
16
  private readonly unauthorizedCallback;
17
+ static globalInterceptors: CustomInterceptor[];
18
+ static setGlobalInterceptors(interceptors: CustomInterceptor[]): void;
6
19
  static create(baseURL: URL, unauthorizedCallback?: UnauthorizedCallback): HttpClient;
7
20
  private constructor();
8
21
  /**
@@ -8,12 +8,24 @@ var axios_1 = __importDefault(require("axios"));
8
8
  var errors_1 = __importDefault(require("../types/errors"));
9
9
  var HttpClient = /** @class */ (function () {
10
10
  function HttpClient(baseURL, unauthorizedCallback) {
11
+ var _this = this;
11
12
  this.axios = axios_1.default.create({
12
13
  baseURL: baseURL,
13
14
  });
14
15
  this.unauthorizedCallback = unauthorizedCallback;
16
+ HttpClient.globalInterceptors.forEach(function (interceptor) {
17
+ if (interceptor.request) {
18
+ _this.axios.interceptors.request.use(interceptor.request.onFulfilled, interceptor.request.onRejected);
19
+ }
20
+ if (interceptor.response) {
21
+ _this.axios.interceptors.response.use(interceptor.response.onFulfilled, interceptor.response.onRejected);
22
+ }
23
+ });
15
24
  this.initializeMiddleware();
16
25
  }
26
+ HttpClient.setGlobalInterceptors = function (interceptors) {
27
+ HttpClient.globalInterceptors = interceptors;
28
+ };
17
29
  HttpClient.create = function (baseURL, unauthorizedCallback) {
18
30
  if (unauthorizedCallback === undefined) {
19
31
  unauthorizedCallback = function () { return null; };
@@ -190,6 +202,7 @@ var HttpClient = /** @class */ (function () {
190
202
  }
191
203
  throw new errors_1.default(errorMessage, errorStatus, errorCode, errorHeaders);
192
204
  };
205
+ HttpClient.globalInterceptors = [];
193
206
  return HttpClient;
194
207
  }());
195
208
  exports.HttpClient = HttpClient;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@internxt/sdk",
3
3
  "author": "Internxt <hello@internxt.com>",
4
- "version": "1.12.2",
4
+ "version": "1.12.3",
5
5
  "description": "An sdk for interacting with Internxt's services",
6
6
  "repository": {
7
7
  "type": "git",