(event: StoreEvent)
| 277 | }; |
| 278 | |
| 279 | function receive(event: StoreEvent) { |
| 280 | const [nextSnapshot, effects] = transition(currentSnapshot, event); |
| 281 | currentSnapshot = nextSnapshot; |
| 282 | |
| 283 | atom.set(nextSnapshot); |
| 284 | notifyInspection(event, nextSnapshot); |
| 285 | |
| 286 | let committed = false; |
| 287 | const effectEnqueue = { |
| 288 | trigger, |
| 289 | send, |
| 290 | getSnapshot: () => (committed ? currentSnapshot : nextSnapshot) |
| 291 | } as StoreEffectEnqueue<any, any>; |
| 292 | |
| 293 | for (const effect of effects) { |
| 294 | if (typeof effect === 'function') { |
| 295 | effect(effectEnqueue); |
| 296 | } else { |
| 297 | emit(effect); |
| 298 | } |
| 299 | } |
| 300 | |
| 301 | committed = true; |
| 302 | } |
| 303 | |
| 304 | const trigger = |
| 305 | eventTypes && eventTypes.length > 0 |
no test coverage detected
searching dependent graphs…