Magek Framework
    Preparing search index...

    Function evolve

    • Applies partial changes to an entity, optionally using defaults when creating a new instance. Designed for plain objects (entity state); use createInstance for class instances.

      Type Parameters

      • T extends object

      Parameters

      • current: T
      • changes: Partial<T>

      Returns T

      This function always returns a shallow copy, ensuring immutability.

      // Update existing entity
      const updated = evolve(current, { balance: current.balance + event.amount })
      // Create new entity with defaults
      const created = evolve(undefined, { id: event.entityId, name: event.name }, { status: 'active' })
      // Create new entity without defaults (changes must be complete)
      const created = evolve(undefined, { id: event.entityId, name: event.name, status: 'active' })
    • Applies partial changes to an entity, optionally using defaults when creating a new instance. Designed for plain objects (entity state); use createInstance for class instances.

      Type Parameters

      • C extends object
      • D extends object

      Parameters

      • current: undefined
      • changes: C
      • defaults: D

      Returns C & D

      This function always returns a shallow copy, ensuring immutability.

      // Update existing entity
      const updated = evolve(current, { balance: current.balance + event.amount })
      // Create new entity with defaults
      const created = evolve(undefined, { id: event.entityId, name: event.name }, { status: 'active' })
      // Create new entity without defaults (changes must be complete)
      const created = evolve(undefined, { id: event.entityId, name: event.name, status: 'active' })
    • Applies partial changes to an entity, optionally using defaults when creating a new instance. Designed for plain objects (entity state); use createInstance for class instances.

      Type Parameters

      • T extends object

      Parameters

      • current: undefined
      • changes: T

      Returns T

      This function always returns a shallow copy, ensuring immutability.

      // Update existing entity
      const updated = evolve(current, { balance: current.balance + event.amount })
      // Create new entity with defaults
      const created = evolve(undefined, { id: event.entityId, name: event.name }, { status: 'active' })
      // Create new entity without defaults (changes must be complete)
      const created = evolve(undefined, { id: event.entityId, name: event.name, status: 'active' })