deno.land / x / xstate@xstate@4.33.6 / src / match.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { State } from './State';import { StateValue, EventObject } from './types';
export type ValueFromStateGetter<T, TContext, TEvent extends EventObject> = ( state: State<TContext, TEvent>) => T;
export type StatePatternTuple<T, TContext, TEvent extends EventObject> = [ StateValue, ValueFromStateGetter<T, TContext, TEvent>];
export function matchState<T, TContext, TEvent extends EventObject>( state: State<TContext, TEvent> | StateValue, patterns: Array<StatePatternTuple<T, TContext, TEvent>>, defaultValue: ValueFromStateGetter<T, TContext, TEvent>): T { const resolvedState = State.from( state, state instanceof State ? state.context : (undefined as any) );
for (const [stateValue, getValue] of patterns) { if (resolvedState.matches(stateValue)) { return getValue(resolvedState); } }
return defaultValue(resolvedState);}
xstate

Version Info

Tagged at
2 years ago