UNPKG

vasille-jsx

Version:

The same framework which is designed to build bulletproof frontends (JSX components)

12 lines (11 loc) 1.05 kB
import { Fragment, App, Runner, Reactive } from "vasille"; export interface CompositionProps { slot?: (...args: any[]) => void; } export type Composed<Node, Element, TagOptions extends object, In extends CompositionProps, Out> = ($: In & { callback?(data: Out | undefined): void; }, node?: Fragment<Node, Element, TagOptions>, slot?: In["slot"]) => void; export declare function view<Node, Element, TagOptions extends object, In extends CompositionProps, Out>(renderer: (node: Fragment<Node, Element, TagOptions>, input: In) => Out): Composed<Node, Element, TagOptions, In, Out>; export declare function store<Out extends object>(fn: (ctx: Reactive) => Out): Out; export declare function model<In extends object, Out extends object>(fn: (ctx: Reactive, o: In) => Out): (o: In, parent?: Reactive) => Out; export declare function mount<Node, Element, TagOptions extends object, T>(tag: Element, view: ($: T, node: Fragment<Node, Element, TagOptions>) => unknown, runner: Runner<Node, Element, TagOptions>, $: T): App<Node, Element, TagOptions>;