github statelyai/xstate @xstate/store@2.4.0

latest releases: @xstate/solid@0.2.3, @xstate/svelte@3.0.5, @xstate/vue@3.1.4...
one month ago

Minor Changes

  • #5064 84aca37d0b02cb9cd5a32c8fd09e487bd8fe2a47 Thanks @davidkpiano! - There is a new single-argument config API for createStore(config):

    const store = createStore({
      // Types (optional)
      types: {
        emitted: {} as { type: 'incremented' }
      },
    
      // Context
      context: { count: 0 },
    
      // Transitions
      on: {
        inc: (context, event: { by: number }, enq) => {
          enq.emit({ type: 'incremented' });
    
          return { count: context.count + event.by };
        },
        dec: (context, event: { by: number }) => ({
          count: context.count - event.by
        })
      }
    });
  • #5064 84aca37d0b02cb9cd5a32c8fd09e487bd8fe2a47 Thanks @davidkpiano! - You can now emit events from a store:

    import { createStore } from '@xstate/store';
    
    const store = createStore({
      context: {
        count: 0
      },
      on: {
        increment: (context, event, { emit }) => {
          emit({ type: 'incremented' });
          return { count: context.count + 1 };
        }
      }
    });
    
    store.on('incremented', () => {
      console.log('incremented!');
    });

Don't miss a new xstate release

NewReleases is sending notifications on new releases.