()
| 10 | const serviceListeners = new Set<any>(); |
| 11 | |
| 12 | function createDevTools() { |
| 13 | const unregister: XStateDevInterface['unregister'] = (service) => { |
| 14 | services.delete(service); |
| 15 | serviceMap.delete(service.sessionId); |
| 16 | }; |
| 17 | const devTools: XStateDevInterface = { |
| 18 | services, |
| 19 | register: (service) => { |
| 20 | services.add(service); |
| 21 | serviceMap.set(service.sessionId, service); |
| 22 | serviceListeners.forEach((listener) => listener(service)); |
| 23 | |
| 24 | service.subscribe({ |
| 25 | complete: () => unregister(service), |
| 26 | error: () => unregister(service) |
| 27 | }); |
| 28 | }, |
| 29 | unregister, |
| 30 | onRegister: (listener) => { |
| 31 | serviceListeners.add(listener); |
| 32 | services.forEach((service) => listener(service)); |
| 33 | |
| 34 | return { |
| 35 | unsubscribe: () => { |
| 36 | serviceListeners.delete(listener); |
| 37 | } |
| 38 | }; |
| 39 | } |
| 40 | }; |
| 41 | (globalThis as any).__xstate__ = devTools; |
| 42 | return devTools; |
| 43 | } |
| 44 | |
| 45 | interface ServerInspectorOptions { |
| 46 | server: WebSocketServer; |
no test coverage detected
searching dependent graphs…