UNPKG

horojs

Version:

A micro library for a reactive UI application.

22 lines (21 loc) 1.14 kB
type Unsubscriber = () => void; type Subscribable<T> = { (listner: (value: T) => void): Unsubscriber | void; }; type Subscription<T> = { (value: T): void; }; type Subscriptions<T> = T extends infer K ? Subscription<K> : never; interface Component { unsubscribe(): void; fragment: DocumentFragment; } type StaticInsertion = string | Component; type DynamicInsertion = Subscribable<string | Component>; type ValueInsertion = DynamicInsertion | StaticInsertion; type Instertion = Subscriptions<GlobalEventHandlersEventMap[keyof GlobalEventHandlersEventMap]> | ValueInsertion; declare function isStaticInsertion(insertion: Instertion): insertion is StaticInsertion; declare function isDynamicInsertion(insertion: Instertion): insertion is DynamicInsertion; declare function ensureValueInsertion(instertion: Instertion): ValueInsertion; declare function ensureSubscription(instertion: Instertion): Subscription<Event>; export { Unsubscriber, Subscribable, Subscription, Component, StaticInsertion, DynamicInsertion, ValueInsertion, Instertion, isStaticInsertion, isDynamicInsertion, ensureValueInsertion, ensureSubscription };