UNPKG

@action-land/component

Version:
17 lines (16 loc) 748 B
import { Component } from '@action-land/component'; declare type anyComponent = Component<any, any, any, any>; declare type NState<T> = T & { '@@forward': { keys: Array<string>; }; }; declare type ComponentSpec = { [key: string]: anyComponent; }; declare type ComponentState<T extends anyComponent> = T extends Component<infer S, unknown, unknown[], unknown> ? S : unknown; declare type ChildStateSpec<T extends ComponentSpec> = { [k in keyof T]: ComponentState<T[k]>; }; export declare const AutoForward: <T extends ComponentSpec>(spec: T) => <State extends ChildStateSpec<T>, Params, Init extends any[], VNode>(component: Component<State, Params, Init, VNode>) => Component<NState<State>, Params, Init, VNode>; export {};