UNPKG

rvx

Version:

A signal based rendering library

42 lines (41 loc) 1.52 kB
import type { Component } from "../core/types.js"; import { View } from "../core/view.js"; /** * Render content depending on the state of an async function or promise. * * See {@link Async `<Async>`} when using JSX or when named properties are preferred. * * This task is tracked using the current {@link ASYNC async context} if any. It is guaranteed, that the view is updated before the tracked task completes. */ export declare function nestAsync<T>(source: (() => Promise<T>) | Promise<T>, component?: Component<T>, pending?: Component, rejected?: Component<unknown>): View; /** * Render content depending on the state of an async function or promise. * * See {@link nestAsync} when not using JSX or when positional arguments are preferred. * * This task is tracked using the current {@link ASYNC async context} if any. It is guaranteed, that the view is updated before the tracked task completes. */ export declare function Async<T>(props: { /** * The async function or promise. */ source: (() => Promise<T>) | Promise<T>; /** * A function render content while pending. * * By default, nothing is rendered. */ pending?: () => unknown; /** * A function to render content when resolved. * * By default, nothing is rendered. */ children?: (value: T) => unknown; /** * A function to render content when rejected. * * By default, nothing is rendered. */ rejected?: (value: unknown) => unknown; }): View;