Class ConditionalHandler<TIn, TOut>

This handler will pass all requests to the wrapped handler, until a specific value has been set in the given storage. After that all input will be rejected. Once the value has been matched this behaviour will be cached, so changing the value again afterwards will not enable this handler again.

Type Parameters

  • TIn

  • TOut

Hierarchy

Constructors

Properties

finished: boolean
source: AsyncHandler<TIn, TOut>
storage: KeyValueStorage<string, unknown>
storageKey: string
storageValue: unknown

Methods

  • Checks if the input can be handled by this class. If it cannot handle the input, rejects with an error explaining why.

    Returns

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

    Parameters

    • input: TIn

      Input that could potentially be handled.

    Returns Promise<void>

  • Handles the given input. This may only be called if canHandle did not reject. When unconditionally calling both in sequence, consider handleSafe instead.

    Returns

    A promise resolving when handling is finished.

    Parameters

    • input: TIn

      Input that needs to be handled.

    Returns Promise<TOut>

  • 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.

    Returns

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

    Parameters

    • input: TIn

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

    Returns Promise<TOut>