@sebspark/openapi-client 2.1.8 → 2.1.10

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.
package/dist/index.d.mts CHANGED
@@ -1,7 +1,11 @@
1
1
  import { BaseClient, ClientOptions } from '@sebspark/openapi-core';
2
+ import { AxiosInstance } from 'axios';
2
3
  import { Logger } from 'winston';
3
4
  export * from '@sebspark/retry';
4
5
 
5
- declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions, logger?: Logger) => C;
6
+ type TypedAxiosClient<T> = T & {
7
+ axiosInstance: AxiosInstance;
8
+ };
9
+ declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions, logger?: Logger) => TypedAxiosClient<C>;
6
10
 
7
- export { TypedClient };
11
+ export { type TypedAxiosClient, TypedClient };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import { BaseClient, ClientOptions } from '@sebspark/openapi-core';
2
+ import { AxiosInstance } from 'axios';
2
3
  import { Logger } from 'winston';
3
4
  export * from '@sebspark/retry';
4
5
 
5
- declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions, logger?: Logger) => C;
6
+ type TypedAxiosClient<T> = T & {
7
+ axiosInstance: AxiosInstance;
8
+ };
9
+ declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions, logger?: Logger) => TypedAxiosClient<C>;
6
10
 
7
- export { TypedClient };
11
+ export { type TypedAxiosClient, TypedClient };
package/dist/index.js CHANGED
@@ -93,19 +93,25 @@ var paramsSerializer = (format) => (params) => {
93
93
 
94
94
  // src/client.ts
95
95
  var TypedClient = (baseURL, globalOptions, logger) => {
96
+ const axiosInstance = import_axios.default.create();
96
97
  if (globalOptions?.authorizationTokenGenerator) {
97
98
  logger?.debug("authorizationTokenGenerator is set");
98
- import_axios.default.interceptors.request.use(async (request) => {
99
+ axiosInstance.interceptors.request.use(async (request) => {
99
100
  const url = `${request.baseURL}${request.url}`;
100
101
  logger?.debug(`Intercepting request to ${url}`);
101
102
  if (globalOptions?.authorizationTokenGenerator && url) {
102
- const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
103
- if (authorizationTokenHeaders) {
104
- for (const key of Object.keys(authorizationTokenHeaders)) {
105
- const value = authorizationTokenHeaders[key];
106
- logger?.debug(`Setting header ${key} to ${value}`);
107
- request.headers[key] = value;
103
+ try {
104
+ const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
105
+ if (authorizationTokenHeaders) {
106
+ for (const key of Object.keys(authorizationTokenHeaders)) {
107
+ const value = authorizationTokenHeaders[key];
108
+ logger?.debug(`Setting header ${key} to ${value}`);
109
+ request.headers[key] = value;
110
+ }
108
111
  }
112
+ } catch (error) {
113
+ logger?.error(`Error generating token for URL: ${url}`);
114
+ throw error;
109
115
  }
110
116
  }
111
117
  logger?.debug("Intercepted request:");
@@ -127,13 +133,18 @@ var TypedClient = (baseURL, globalOptions, logger) => {
127
133
  const url = `${axiosError.config?.baseURL}${axiosError.config?.url}`;
128
134
  if (globalOptions?.authorizationTokenRefresh && url) {
129
135
  logger?.debug(`Refreshing token for URL ${url}`);
130
- await globalOptions?.authorizationTokenRefresh(url);
136
+ try {
137
+ await globalOptions?.authorizationTokenRefresh(url);
138
+ } catch (error) {
139
+ logger?.error(`Error refreshing token for URL: ${url}`);
140
+ throw error;
141
+ }
131
142
  }
132
143
  };
133
- (0, import_axios_auth_refresh.default)(import_axios.default, refreshAuthLogic);
144
+ (0, import_axios_auth_refresh.default)(axiosInstance, refreshAuthLogic);
134
145
  }
135
146
  if (logger) {
136
- import_axios.default.interceptors.request.use((request) => {
147
+ axiosInstance.interceptors.request.use((request) => {
137
148
  const requestObject = {
138
149
  url: request.url,
139
150
  params: request.params,
@@ -142,7 +153,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
142
153
  logger.debug(JSON.stringify(requestObject, null, 2));
143
154
  return request;
144
155
  });
145
- import_axios.default.interceptors.response.use((response) => {
156
+ axiosInstance.interceptors.response.use((response) => {
146
157
  const responseObject = {
147
158
  data: response.data,
148
159
  config: response.config,
@@ -153,20 +164,35 @@ var TypedClient = (baseURL, globalOptions, logger) => {
153
164
  });
154
165
  }
155
166
  const client = {
156
- get: (url, args, opts) => callServer(mergeArgs(baseURL, url, "get", args, opts, globalOptions)),
157
- post: (url, args, opts) => callServer(mergeArgs(baseURL, url, "post", args, opts, globalOptions)),
158
- put: (url, args, opts) => callServer(mergeArgs(baseURL, url, "put", args, opts, globalOptions)),
159
- patch: (url, args, opts) => callServer(mergeArgs(baseURL, url, "patch", args, opts, globalOptions)),
160
- delete: (url, args, opts) => callServer(mergeArgs(baseURL, url, "delete", args, opts, globalOptions))
167
+ get: (url, args, opts) => callServer(
168
+ axiosInstance,
169
+ mergeArgs(baseURL, url, "get", args, opts, globalOptions)
170
+ ),
171
+ post: (url, args, opts) => callServer(
172
+ axiosInstance,
173
+ mergeArgs(baseURL, url, "post", args, opts, globalOptions)
174
+ ),
175
+ put: (url, args, opts) => callServer(
176
+ axiosInstance,
177
+ mergeArgs(baseURL, url, "put", args, opts, globalOptions)
178
+ ),
179
+ patch: (url, args, opts) => callServer(
180
+ axiosInstance,
181
+ mergeArgs(baseURL, url, "patch", args, opts, globalOptions)
182
+ ),
183
+ delete: (url, args, opts) => callServer(
184
+ axiosInstance,
185
+ mergeArgs(baseURL, url, "delete", args, opts, globalOptions)
186
+ )
161
187
  };
162
- return client;
188
+ return { ...client, axiosInstance };
163
189
  };
164
- var callServer = async (args) => {
190
+ var callServer = async (axiosInstance, args) => {
165
191
  try {
166
192
  const serializer = paramsSerializer(args.arrayFormat);
167
193
  const body = args.method?.toLowerCase() === "get" || args.method?.toLowerCase() === "delete" ? void 0 : args.body;
168
194
  const { headers, data } = await (0, import_retry.retry)(
169
- () => import_axios.default.request({
195
+ () => axiosInstance.request({
170
196
  baseURL: args.baseUrl,
171
197
  url: args.url,
172
198
  method: args.method,
package/dist/index.mjs CHANGED
@@ -58,19 +58,25 @@ var paramsSerializer = (format) => (params) => {
58
58
 
59
59
  // src/client.ts
60
60
  var TypedClient = (baseURL, globalOptions, logger) => {
61
+ const axiosInstance = axios.create();
61
62
  if (globalOptions?.authorizationTokenGenerator) {
62
63
  logger?.debug("authorizationTokenGenerator is set");
63
- axios.interceptors.request.use(async (request) => {
64
+ axiosInstance.interceptors.request.use(async (request) => {
64
65
  const url = `${request.baseURL}${request.url}`;
65
66
  logger?.debug(`Intercepting request to ${url}`);
66
67
  if (globalOptions?.authorizationTokenGenerator && url) {
67
- const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
68
- if (authorizationTokenHeaders) {
69
- for (const key of Object.keys(authorizationTokenHeaders)) {
70
- const value = authorizationTokenHeaders[key];
71
- logger?.debug(`Setting header ${key} to ${value}`);
72
- request.headers[key] = value;
68
+ try {
69
+ const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
70
+ if (authorizationTokenHeaders) {
71
+ for (const key of Object.keys(authorizationTokenHeaders)) {
72
+ const value = authorizationTokenHeaders[key];
73
+ logger?.debug(`Setting header ${key} to ${value}`);
74
+ request.headers[key] = value;
75
+ }
73
76
  }
77
+ } catch (error) {
78
+ logger?.error(`Error generating token for URL: ${url}`);
79
+ throw error;
74
80
  }
75
81
  }
76
82
  logger?.debug("Intercepted request:");
@@ -92,13 +98,18 @@ var TypedClient = (baseURL, globalOptions, logger) => {
92
98
  const url = `${axiosError.config?.baseURL}${axiosError.config?.url}`;
93
99
  if (globalOptions?.authorizationTokenRefresh && url) {
94
100
  logger?.debug(`Refreshing token for URL ${url}`);
95
- await globalOptions?.authorizationTokenRefresh(url);
101
+ try {
102
+ await globalOptions?.authorizationTokenRefresh(url);
103
+ } catch (error) {
104
+ logger?.error(`Error refreshing token for URL: ${url}`);
105
+ throw error;
106
+ }
96
107
  }
97
108
  };
98
- createAuthRefreshInterceptor(axios, refreshAuthLogic);
109
+ createAuthRefreshInterceptor(axiosInstance, refreshAuthLogic);
99
110
  }
100
111
  if (logger) {
101
- axios.interceptors.request.use((request) => {
112
+ axiosInstance.interceptors.request.use((request) => {
102
113
  const requestObject = {
103
114
  url: request.url,
104
115
  params: request.params,
@@ -107,7 +118,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
107
118
  logger.debug(JSON.stringify(requestObject, null, 2));
108
119
  return request;
109
120
  });
110
- axios.interceptors.response.use((response) => {
121
+ axiosInstance.interceptors.response.use((response) => {
111
122
  const responseObject = {
112
123
  data: response.data,
113
124
  config: response.config,
@@ -118,20 +129,35 @@ var TypedClient = (baseURL, globalOptions, logger) => {
118
129
  });
119
130
  }
120
131
  const client = {
121
- get: (url, args, opts) => callServer(mergeArgs(baseURL, url, "get", args, opts, globalOptions)),
122
- post: (url, args, opts) => callServer(mergeArgs(baseURL, url, "post", args, opts, globalOptions)),
123
- put: (url, args, opts) => callServer(mergeArgs(baseURL, url, "put", args, opts, globalOptions)),
124
- patch: (url, args, opts) => callServer(mergeArgs(baseURL, url, "patch", args, opts, globalOptions)),
125
- delete: (url, args, opts) => callServer(mergeArgs(baseURL, url, "delete", args, opts, globalOptions))
132
+ get: (url, args, opts) => callServer(
133
+ axiosInstance,
134
+ mergeArgs(baseURL, url, "get", args, opts, globalOptions)
135
+ ),
136
+ post: (url, args, opts) => callServer(
137
+ axiosInstance,
138
+ mergeArgs(baseURL, url, "post", args, opts, globalOptions)
139
+ ),
140
+ put: (url, args, opts) => callServer(
141
+ axiosInstance,
142
+ mergeArgs(baseURL, url, "put", args, opts, globalOptions)
143
+ ),
144
+ patch: (url, args, opts) => callServer(
145
+ axiosInstance,
146
+ mergeArgs(baseURL, url, "patch", args, opts, globalOptions)
147
+ ),
148
+ delete: (url, args, opts) => callServer(
149
+ axiosInstance,
150
+ mergeArgs(baseURL, url, "delete", args, opts, globalOptions)
151
+ )
126
152
  };
127
- return client;
153
+ return { ...client, axiosInstance };
128
154
  };
129
- var callServer = async (args) => {
155
+ var callServer = async (axiosInstance, args) => {
130
156
  try {
131
157
  const serializer = paramsSerializer(args.arrayFormat);
132
158
  const body = args.method?.toLowerCase() === "get" || args.method?.toLowerCase() === "delete" ? void 0 : args.body;
133
159
  const { headers, data } = await retry(
134
- () => axios.request({
160
+ () => axiosInstance.request({
135
161
  baseURL: args.baseUrl,
136
162
  url: args.url,
137
163
  method: args.method,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebspark/openapi-client",
3
- "version": "2.1.8",
3
+ "version": "2.1.10",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",