transferum
    Preparing search index...

    Class AsyncConvertTransfer<TInput, TOutput>

    Async converter transfer: transforms input data via an AsyncOperator and sends the result to subscribers.

    Capabilities: isInput, isOutput, isDuplex, isAsyncPushable, isSubscribable

    Mechanics:

    1. The constructor accepts config.operator: AsyncOperatorInterface<TInput, TOutput | undefined>
    2. asyncPush(data) — applies await operator.apply(data), notifies subscribers, clears _state
    3. subscribe(handler) — subscribes to transformed data (sync)
    4. If the operator returns undefined — subscribers are not notified

    Sequence Guard (active when maxConcurrency > 1):

    • Multiple operator.apply() calls run in parallel (up to maxConcurrency).
    • Results are emitted to subscribers strictly in data-arrival order.
    • A faster operation that completes before an older one waits in an internal pending queue until its predecessor is emitted.
    • This prevents a stale result from overwriting a fresh one in _state.value.
    • When maxConcurrency <= 1, the guard is inactive (no overhead).

    Error handling:

    • If operator.apply() throws an exception, onError is called.
    • With onError provided, the exception is suppressed. Without onError — rethrown.
    • When the guard is active, a failed operation submits undefined to the queue so that subsequent results are not blocked.

    Configuration (AsyncConvertTransferConfig):

    • operator: AsyncOperatorInterface<TInput, TOutput | undefined>
    • onError?: ErrorHandler
    • maxConcurrency?, bufferSize?, onBufferOverflow? (BackpressureConfig)

    Type Parameters

    • TInput
    • TOutput

    Hierarchy (View Summary)

    Implements

    Index
    isAsyncPollingProxy: boolean = false
    isAsyncPullable: boolean = false
    isAsyncPushable: true
    isAsyncTriggerable: boolean = false
    isDuplex: true
    isGate: boolean = false
    isInput: true
    isOutput: true
    isPollingProxy: boolean = false
    isPollingSource: boolean = false
    isPullable: boolean = false
    isPushable: boolean = false
    isSubscribable: true
    isTriggerable: boolean = false