UNPKG

@temporalio/common

Version:

Common library for code that's used across the Client, Worker, and/or Workflow

27 lines 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.composeInterceptors = composeInterceptors; /** * Compose all interceptor methods into a single function. * * Calling the composed function results in calling each of the provided interceptor, in order (from the first to * the last), followed by the original function provided as argument to `composeInterceptors()`. * * @param interceptors a list of interceptors * @param method the name of the interceptor method to compose * @param next the original function to be executed at the end of the interception chain */ // ts-prune-ignore-next (imported via lib/interceptors) function composeInterceptors(interceptors, method, next) { for (let i = interceptors.length - 1; i >= 0; --i) { const interceptor = interceptors[i]; if (interceptor?.[method] !== undefined) { const prev = next; // We lose type safety here because Typescript can't deduce that interceptor[method] is a function that returns // the same type as Next<I, M> next = ((input) => interceptor[method](input, prev)); } } return next; } //# sourceMappingURL=interceptors.js.map