Class WaterfallHandler<TIn, TOut>

A composite handler that tries multiple handlers one by one until it finds a handler that supports the input. The handlers will be checked in the order they appear in the input array, allowing for more fine-grained handlers to check before catch-all handlers.

Type Parameters

  • TIn

  • TOut

Hierarchy

  • WaterfallHandler

Implements

Constructors

Properties

Methods

Constructors

Properties

handlers: AsyncHandler<TIn, TOut>[]
logger: Logger = ...

Methods

  • Checks if any of the stored handlers can handle the given input.

    Parameters

    • input: TIn

      The data that would need to be handled.

    Returns Promise<void>

    A promise resolving if at least 1 handler supports to input, or rejecting if none do.

  • Finds a handler that supports the given input and then lets it handle the given data.

    Parameters

    • input: TIn

      The data that needs to be handled.

    Returns Promise<TOut>

    A promise corresponding to the handle call of a handler that supports the input. It rejects if no handlers support the given data.

  • Identical to handleSafe but optimized for composite by only needing 1 canHandle call on members.

    Parameters

    • input: TIn

      The input data.

    Returns Promise<TOut>

    A promise corresponding to the handle call of a handler that supports the input. It rejects if no handlers support the given data.