MCPcopy
hub / github.com/statelyai/xstate / createDevTools

Function createDevTools

packages/xstate-inspect/src/browser.ts:30–63  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

28const serviceMap = new Map<string, AnyActor>();
29
30export function createDevTools(): XStateDevInterface {
31 const services = new Set<AnyActor>();
32 const serviceListeners = new Set<ServiceListener>();
33
34 const unregister: XStateDevInterface['unregister'] = (service) => {
35 services.delete(service);
36 serviceMap.delete(service.sessionId);
37 };
38
39 return {
40 services,
41 register: (service) => {
42 services.add(service);
43 serviceMap.set(service.sessionId, service);
44 serviceListeners.forEach((listener) => listener(service));
45
46 service.subscribe({
47 complete: () => unregister(service),
48 error: () => unregister(service)
49 });
50 },
51 unregister,
52 onRegister: (listener) => {
53 serviceListeners.add(listener);
54 services.forEach((service) => listener(service));
55
56 return {
57 unsubscribe: () => {
58 serviceListeners.delete(listener);
59 }
60 };
61 }
62 };
63}
64
65const defaultInspectorOptions = {
66 url: 'https://stately.ai/viz?inspect',

Callers 1

browser.tsFile · 0.70

Calls 4

unregisterFunction · 0.70
setMethod · 0.65
subscribeMethod · 0.65
listenerFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…