Options
All
  • Public
  • Public/Protected
  • All
Menu

Utility handler that allows combining the results of multiple handlers into one. Will run the handlers and then call the abstract combine function with the results, which then generates the handler's output.

Type parameters

Hierarchy

Index

Constructors

  • new UnionHandler<T>(handlers: T[], requireAll?: boolean, ignoreErrors?: boolean): UnionHandler<T>
  • Creates a new UnionHandler.

    When requireAll is false or ignoreErrors is true, the length of the input to combine can vary; otherwise, it is exactly the number of handlers.

    Type parameters

    Parameters

    • handlers: T[]

      The handlers whose output is to be combined.

    • requireAll: boolean = false

      If true, will fail if any of the handlers do not support the input. If false, only the handlers that support the input will be called; will fail only if none of the handlers can handle the input.

    • ignoreErrors: boolean = !requireAll

      If true, ignores handlers that fail by omitting their output; if false, fails when any handlers fail.

    Returns UnionHandler<T>

Properties

handlers: T[]
ignoreErrors: boolean
requireAll: boolean

Methods

  • allCanHandle(input: InType<T>): Promise<void>
  • Checks if all handlers can handle the input. If not, throw an error based on the errors of the failed handlers.

    Parameters

    • input: InType<T>

    Returns Promise<void>

  • canHandle(input: InType<T>): Promise<void>
  • Checks if the input can be handled by this class. If it cannot handle the input, rejects with an error explaining why.

    Parameters

    • input: InType<T>

    Returns Promise<void>

    A promise resolving if the input can be handled, rejecting with an Error if not.

  • combine(results: Awaited<ReturnType<T["handle"]>>[]): Promise<Awaited<ReturnType<T["handle"]>>>
  • Combines the results of the handlers into a single output.

    Parameters

    • results: Awaited<ReturnType<T["handle"]>>[]

    Returns Promise<Awaited<ReturnType<T["handle"]>>>

  • handle(input: InType<T>): Promise<Awaited<ReturnType<T["handle"]>>>
  • handleSafe(input: InType<T>): Promise<Awaited<ReturnType<T["handle"]>>>
  • Helper function that first runs canHandle followed by handle. Throws the error of canHandle if the data cannot be handled, or returns the result of handle otherwise.

    Parameters

    • input: InType<T>

      Input data that will be handled if it can be handled.

    Returns Promise<Awaited<ReturnType<T["handle"]>>>

    A promise resolving if the input can be handled, rejecting with an Error if not.