diff --git a/src/client/multitransport-client.ts b/src/client/multitransport-client.ts index 62dfc557..e3aeb9c5 100644 --- a/src/client/multitransport-client.ts +++ b/src/client/multitransport-client.ts @@ -382,10 +382,8 @@ export class Client { args: AfterArgs, interceptors?: CallInterceptor[] ): Promise { - if (!this.config?.interceptors || this.config.interceptors.length === 0) { - return; - } - for (const interceptor of interceptors ?? this.config.interceptors) { + const reversedInterceptors = [...(interceptors ?? this.config?.interceptors ?? [])].reverse(); + for (const interceptor of reversedInterceptors) { await interceptor.after(args); if (args.earlyReturn) { return; diff --git a/test/client/multitransport-client.spec.ts b/test/client/multitransport-client.spec.ts index 67298bfe..673ac573 100644 --- a/test/client/multitransport-client.spec.ts +++ b/test/client/multitransport-client.spec.ts @@ -569,15 +569,15 @@ describe('Client', () => { { before: async () => {}, after: async (args) => { - args.earlyReturn = true; + if (args.result.method === 'getTask') { + args.result.value = { ...args.result.value, metadata: { foo: 'bar' } }; + } }, }, { before: async () => {}, after: async (args) => { - if (args.result.method === 'getTask') { - args.result.value = { ...args.result.value, metadata: { foo: 'bar' } }; - } + args.earlyReturn = true; }, }, ],