ApplyMiddlewareTuple

View Source

Summary

Applies an ordered middleware array to a request-context type from left to right.

Signature

type ApplyMiddlewareTuple<context, middleware> =
  middleware extends readonly AnyMiddleware[]
    ? number extends middleware["length"]
      ? context
      : middleware extends readonly [infer first, ...infer rest]
        ? ApplyMiddlewareTuple<ApplyMiddleware<context, first>, rest>
        : context
    : context;