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

serviceScope.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { AnyInterpreter } from './types';
/** * Maintains a stack of the current service in scope. * This is used to provide the correct service to spawn(). */
const serviceStack = [] as Array<AnyInterpreter | undefined>;
export const provide = <T, TService extends AnyInterpreter>( service: TService | undefined, fn: (service: TService | undefined) => T) => { serviceStack.push(service); const result = fn(service); serviceStack.pop(); return result;};
export const consume = <T, TService extends AnyInterpreter>( fn: (service: TService) => T) => fn(serviceStack[serviceStack.length - 1] as TService);
xstate

Version Info

Tagged at
2 years ago