Skip to content

Commit 4d73936

Browse files
committed
fix(client): expose all interceptor methods
1 parent 0cb4db6 commit 4d73936

File tree

321 files changed

+6004
-6680
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

321 files changed

+6004
-6680
lines changed

packages/custom-client/src/client.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export const createClient = (config: Config = {}): Client => {
6868

6969
let request = new Request(url, requestInit);
7070

71-
for (const fn of interceptors.request._fns) {
71+
for (const fn of interceptors.request.fns) {
7272
if (fn) {
7373
request = await fn(request, opts);
7474
}
@@ -79,7 +79,7 @@ export const createClient = (config: Config = {}): Client => {
7979
const _fetch = opts.fetch!;
8080
let response = await _fetch(request);
8181

82-
for (const fn of interceptors.response._fns) {
82+
for (const fn of interceptors.response.fns) {
8383
if (fn) {
8484
response = await fn(response, request, opts);
8585
}
@@ -147,7 +147,7 @@ export const createClient = (config: Config = {}): Client => {
147147

148148
let finalError = error;
149149

150-
for (const fn of interceptors.error._fns) {
150+
for (const fn of interceptors.error.fns) {
151151
if (fn) {
152152
finalError = (await fn(error, response, request, opts)) as string;
153153
}

packages/custom-client/src/utils.ts

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -345,67 +345,61 @@ type ResInterceptor<Res, Req, Options> = (
345345
) => Res | Promise<Res>;
346346

347347
class Interceptors<Interceptor> {
348-
_fns: (Interceptor | null)[];
348+
fns: Array<Interceptor | null> = [];
349349

350-
constructor() {
351-
this._fns = [];
350+
clear(): void {
351+
this.fns = [];
352352
}
353353

354-
clear() {
355-
this._fns = [];
356-
}
357-
358-
getInterceptorIndex(id: number | Interceptor): number {
359-
if (typeof id === 'number') {
360-
return this._fns[id] ? id : -1;
361-
} else {
362-
return this._fns.indexOf(id);
354+
eject(id: number | Interceptor): void {
355+
const index = this.getInterceptorIndex(id);
356+
if (this.fns[index]) {
357+
this.fns[index] = null;
363358
}
364359
}
365-
exists(id: number | Interceptor) {
360+
361+
exists(id: number | Interceptor): boolean {
366362
const index = this.getInterceptorIndex(id);
367-
return !!this._fns[index];
363+
return Boolean(this.fns[index]);
368364
}
369365

370-
eject(id: number | Interceptor) {
371-
const index = this.getInterceptorIndex(id);
372-
if (this._fns[index]) {
373-
this._fns[index] = null;
366+
getInterceptorIndex(id: number | Interceptor): number {
367+
if (typeof id === 'number') {
368+
return this.fns[id] ? id : -1;
374369
}
370+
return this.fns.indexOf(id);
375371
}
376372

377-
update(id: number | Interceptor, fn: Interceptor) {
373+
update(
374+
id: number | Interceptor,
375+
fn: Interceptor,
376+
): number | Interceptor | false {
378377
const index = this.getInterceptorIndex(id);
379-
if (this._fns[index]) {
380-
this._fns[index] = fn;
378+
if (this.fns[index]) {
379+
this.fns[index] = fn;
381380
return id;
382-
} else {
383-
return false;
384381
}
382+
return false;
385383
}
386384

387-
use(fn: Interceptor) {
388-
this._fns = [...this._fns, fn];
389-
return this._fns.length - 1;
385+
use(fn: Interceptor): number {
386+
this.fns.push(fn);
387+
return this.fns.length - 1;
390388
}
391389
}
392390

393-
// `createInterceptors()` response, meant for external use as it does not
394-
// expose internals
395391
export interface Middleware<Req, Res, Err, Options> {
396-
error: Pick<
397-
Interceptors<ErrInterceptor<Err, Res, Req, Options>>,
398-
'eject' | 'use'
399-
>;
400-
request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;
401-
response: Pick<
402-
Interceptors<ResInterceptor<Res, Req, Options>>,
403-
'eject' | 'use'
404-
>;
392+
error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;
393+
request: Interceptors<ReqInterceptor<Req, Options>>;
394+
response: Interceptors<ResInterceptor<Res, Req, Options>>;
405395
}
406396

407-
// do not add `Middleware` as return type so we can use _fns internally
408-
export const createInterceptors = <Req, Res, Err, Options>() => ({
397+
export const createInterceptors = <Req, Res, Err, Options>(): Middleware<
398+
Req,
399+
Res,
400+
Err,
401+
Options
402+
> => ({
409403
error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),
410404
request: new Interceptors<ReqInterceptor<Req, Options>>(),
411405
response: new Interceptors<ResInterceptor<Res, Req, Options>>(),

packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/body-response-text-plain/client/client.gen.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export const createClient = (config: Config = {}): Client => {
8686

8787
let request = new Request(url, requestInit);
8888

89-
for (const fn of interceptors.request._fns) {
89+
for (const fn of interceptors.request.fns) {
9090
if (fn) {
9191
request = await fn(request, opts);
9292
}
@@ -97,7 +97,7 @@ export const createClient = (config: Config = {}): Client => {
9797
const _fetch = opts.fetch!;
9898
let response = await _fetch(request);
9999

100-
for (const fn of interceptors.response._fns) {
100+
for (const fn of interceptors.response.fns) {
101101
if (fn) {
102102
response = await fn(response, request, opts);
103103
}
@@ -192,7 +192,7 @@ export const createClient = (config: Config = {}): Client => {
192192
const error = jsonError ?? textError;
193193
let finalError = error;
194194

195-
for (const fn of interceptors.error._fns) {
195+
for (const fn of interceptors.error.fns) {
196196
if (fn) {
197197
finalError = (await fn(error, response, request, opts)) as string;
198198
}
@@ -227,7 +227,7 @@ export const createClient = (config: Config = {}): Client => {
227227
method,
228228
onRequest: async (url, init) => {
229229
let request = new Request(url, init);
230-
for (const fn of interceptors.request._fns) {
230+
for (const fn of interceptors.request.fns) {
231231
if (fn) {
232232
request = await fn(request, opts);
233233
}

packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/body-response-text-plain/client/utils.gen.ts

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -244,67 +244,61 @@ type ResInterceptor<Res, Req, Options> = (
244244
) => Res | Promise<Res>;
245245

246246
class Interceptors<Interceptor> {
247-
_fns: (Interceptor | null)[];
247+
fns: Array<Interceptor | null> = [];
248248

249-
constructor() {
250-
this._fns = [];
249+
clear(): void {
250+
this.fns = [];
251251
}
252252

253-
clear() {
254-
this._fns = [];
255-
}
256-
257-
getInterceptorIndex(id: number | Interceptor): number {
258-
if (typeof id === 'number') {
259-
return this._fns[id] ? id : -1;
260-
} else {
261-
return this._fns.indexOf(id);
253+
eject(id: number | Interceptor): void {
254+
const index = this.getInterceptorIndex(id);
255+
if (this.fns[index]) {
256+
this.fns[index] = null;
262257
}
263258
}
264-
exists(id: number | Interceptor) {
259+
260+
exists(id: number | Interceptor): boolean {
265261
const index = this.getInterceptorIndex(id);
266-
return !!this._fns[index];
262+
return Boolean(this.fns[index]);
267263
}
268264

269-
eject(id: number | Interceptor) {
270-
const index = this.getInterceptorIndex(id);
271-
if (this._fns[index]) {
272-
this._fns[index] = null;
265+
getInterceptorIndex(id: number | Interceptor): number {
266+
if (typeof id === 'number') {
267+
return this.fns[id] ? id : -1;
273268
}
269+
return this.fns.indexOf(id);
274270
}
275271

276-
update(id: number | Interceptor, fn: Interceptor) {
272+
update(
273+
id: number | Interceptor,
274+
fn: Interceptor,
275+
): number | Interceptor | false {
277276
const index = this.getInterceptorIndex(id);
278-
if (this._fns[index]) {
279-
this._fns[index] = fn;
277+
if (this.fns[index]) {
278+
this.fns[index] = fn;
280279
return id;
281-
} else {
282-
return false;
283280
}
281+
return false;
284282
}
285283

286-
use(fn: Interceptor) {
287-
this._fns = [...this._fns, fn];
288-
return this._fns.length - 1;
284+
use(fn: Interceptor): number {
285+
this.fns.push(fn);
286+
return this.fns.length - 1;
289287
}
290288
}
291289

292-
// `createInterceptors()` response, meant for external use as it does not
293-
// expose internals
294290
export interface Middleware<Req, Res, Err, Options> {
295-
error: Pick<
296-
Interceptors<ErrInterceptor<Err, Res, Req, Options>>,
297-
'eject' | 'use'
298-
>;
299-
request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;
300-
response: Pick<
301-
Interceptors<ResInterceptor<Res, Req, Options>>,
302-
'eject' | 'use'
303-
>;
291+
error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;
292+
request: Interceptors<ReqInterceptor<Req, Options>>;
293+
response: Interceptors<ResInterceptor<Res, Req, Options>>;
304294
}
305295

306-
// do not add `Middleware` as return type so we can use _fns internally
307-
export const createInterceptors = <Req, Res, Err, Options>() => ({
296+
export const createInterceptors = <Req, Res, Err, Options>(): Middleware<
297+
Req,
298+
Res,
299+
Err,
300+
Options
301+
> => ({
308302
error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),
309303
request: new Interceptors<ReqInterceptor<Req, Options>>(),
310304
response: new Interceptors<ResInterceptor<Res, Req, Options>>(),

packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/form-data/client/client.gen.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export const createClient = (config: Config = {}): Client => {
8686

8787
let request = new Request(url, requestInit);
8888

89-
for (const fn of interceptors.request._fns) {
89+
for (const fn of interceptors.request.fns) {
9090
if (fn) {
9191
request = await fn(request, opts);
9292
}
@@ -97,7 +97,7 @@ export const createClient = (config: Config = {}): Client => {
9797
const _fetch = opts.fetch!;
9898
let response = await _fetch(request);
9999

100-
for (const fn of interceptors.response._fns) {
100+
for (const fn of interceptors.response.fns) {
101101
if (fn) {
102102
response = await fn(response, request, opts);
103103
}
@@ -192,7 +192,7 @@ export const createClient = (config: Config = {}): Client => {
192192
const error = jsonError ?? textError;
193193
let finalError = error;
194194

195-
for (const fn of interceptors.error._fns) {
195+
for (const fn of interceptors.error.fns) {
196196
if (fn) {
197197
finalError = (await fn(error, response, request, opts)) as string;
198198
}
@@ -227,7 +227,7 @@ export const createClient = (config: Config = {}): Client => {
227227
method,
228228
onRequest: async (url, init) => {
229229
let request = new Request(url, init);
230-
for (const fn of interceptors.request._fns) {
230+
for (const fn of interceptors.request.fns) {
231231
if (fn) {
232232
request = await fn(request, opts);
233233
}

0 commit comments

Comments
 (0)