vapor-chamber API reference - v1.3.0
    Preparing search index...

    Function useCommandGroup

    • useCommandGroup — namespace isolation for large apps and multi-team projects.

      All dispatch/register/on calls are automatically prefixed with the namespace in camelCase. This prevents action name collisions when composing multiple feature modules.

      Parameters

      • namespace: string

      Returns {
          dispatch: (action: string, target: any, payload?: any) => CommandResult;
          query: (action: string, target: any, payload?: any) => CommandResult;
          emit: (event: string, data?: any) => void;
          register: (
              action: string,
              handler: Handler,
              opts?: RegisterOptions,
          ) => () => void;
          use: (plugin: Plugin) => () => void;
          on: (pattern: string, listener: Listener) => () => void;
          namespace: string;
          dispose: () => void;
      }

      • dispatch: (action: string, target: any, payload?: any) => CommandResult
      • query: (action: string, target: any, payload?: any) => CommandResult
      • emit: (event: string, data?: any) => void
      • register: (action: string, handler: Handler, opts?: RegisterOptions) => () => void
      • use: (plugin: Plugin) => () => void
      • on: (pattern: string, listener: Listener) => () => void
      • namespace: string
      • dispose: () => void
      // Cart feature
      const cart = useCommandGroup('cart')
      cart.register('add', handler) // registers 'cartAdd'
      cart.dispatch('add', product) // dispatches 'cartAdd'
      cart.on('*', listener) // listens to 'cart*'

      // Orders feature — completely isolated
      const orders = useCommandGroup('orders')
      orders.dispatch('cancel', { id }) // dispatches 'ordersCancel'