UNPKG

@bemedev/app-solid

Version:

Middleware between @bemedev/app-ts and solidjs

36 lines 1.52 kB
import type { AnyMachine, InterpreterFrom, MachineOptionsFrom, WorkingStatus } from '@bemedev/app-ts'; import type { Ru, SoA } from '@bemedev/app-ts/lib/libs/bemedev/globals/types'; import type { StateValue } from '@bemedev/app-ts/lib/states/types'; import type { Accessor, Setter, Signal } from 'solid-js'; export type ToSignals<T extends Ru> = { [K in keyof T]?: Signal<T[K] | undefined>; }; export type ToSetters<T extends Ru> = { type: keyof T & string; payload: Parameters<Setter<T[keyof T]>>[0]; }; export type Options<M extends AnyMachine, S extends Ru> = MachineOptionsFrom<M> extends never ? { uiThread?: ToSignals<S>; } : MachineOptionsFrom<M> & { uiThread?: ToSignals<S>; }; export type _StateSignal = { uiThread: any; context: any; value: StateValue; tags?: any; status: WorkingStatus; event: any; }; export type StateSignal<M extends AnyMachine, S extends Ru> = { context: M['context']; value: StateValue; tags?: SoA<string>; event: M['__events']; status: WorkingStatus; uiThread?: Partial<S>; }; export type AddOptions_F<M extends AnyMachine, S extends Ru> = (option: Parameters<InterpreterFrom<M>['addOptions']>[0]) => Options<M, S> | undefined; export type SendUI_F<S extends Ru> = <T extends ToSetters<S>>(event: T) => ReturnType<Setter<S[T['type']]>>; export type State_F<T> = <const U = T>(accessor?: (state: T) => U, equals?: false | ((prev: U, next: U) => boolean)) => Accessor<U>; //# sourceMappingURL=interpreter.types.d.ts.map