Skip to main content

Extractors

The @ekz/async-data/extractors entry point provides small helpers for conditional rendering without full match blocks.

import { renderReady, renderFailed, renderPending } from '@ekz/async-data/extractors';

API

FunctionRuns when
render(ad, f)ad.nonEmpty
renderReady(ad, f)ad.isReady
renderStale(ad, f)ad.isStale
renderPending(ad, f)ad.isPending (passes duration ms)
renderFailed(ad, f)ad.isFailed
renderEmpty(ad, f)ad.isEmpty

Each returns R | nullnull when the predicate does not match.

Example

{renderReady(data, (user) => <UserCard user={user} />)}
{renderPending(data, (ms) => <Spinner label={`${ms}ms`} />)}
{renderFailed(data, (error) => <ErrorCallout error={error} />)}

Use match when you need exhaustive handling in one expression; use extractors for scattered UI branches in JSX.