rvx
Version:
A signal based rendering library
42 lines (41 loc) • 1.52 kB
TypeScript
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;