Prelude API
    Preparing search index...

    Function record

    • Creates a function that converts an iterable to a record (object) using a key extraction function and conflict resolution strategy.

      Type Parameters

      • T

        Element type

      • K extends string | number | symbol

        Key type

      Parameters

      • keyOfValue: (value: T) => K

        Function to extract a key from each value

      • conflict: (result: Record<K, undefined | T>, value: T, key: K) => void = throws

        Strategy for handling key conflicts (default: throws)

      Returns (values: Iterable<T>) => Record<K, T | undefined>

      A function that converts an iterable to a record

      G.pipe(
      G.of([
      { id: 1, name: 'Alice' },
      { id: 2, name: 'Bob' }
      ]),
      G.record(user => user.id)
      ) // { 1: { id: 1, name: 'Alice' }, 2: { id: 2, name: 'Bob' } }
    Index
    firstWins: <T, K extends string | number | symbol>(
        _result: Record<K, undefined | T>,
        _value: T,
        _key: K,
    ) => void

    Type Declaration

      • <T, K extends string | number | symbol>(
            _result: Record<K, undefined | T>,
            _value: T,
            _key: K,
        ): void
      • Conflict resolution strategy that keeps the first value for each key

        Type Parameters

        • T

          Element type

        • K extends string | number | symbol

          Key type

        Parameters

        • _result: Record<K, undefined | T>

          Resulting record

        • _value: T

          Current value that will be ignored

        • _key: K

          Key that has a conflict

        Returns void

    lastWins: <T, K extends string | number | symbol>(
        result: Record<K, undefined | T>,
        value: T,
        key: K,
    ) => void

    Type Declaration

      • <T, K extends string | number | symbol>(
            result: Record<K, undefined | T>,
            value: T,
            key: K,
        ): void
      • Conflict resolution strategy that uses the last value for each key

        Type Parameters

        • T

          Element type

        • K extends string | number | symbol

          Key type

        Parameters

        • result: Record<K, undefined | T>

          Resulting record

        • value: T

          Current value that will replace existing value

        • key: K

          Key that has a conflict

        Returns void

    throws: <T, K extends string | number | symbol>(
        _result: Record<K, undefined | T>,
        _value: T,
        key: K,
    ) => never

    Type Declaration

      • <T, K extends string | number | symbol>(
            _result: Record<K, undefined | T>,
            _value: T,
            key: K,
        ): never
      • Conflict resolution strategy that throws an error on duplicate keys

        Type Parameters

        • T

          Element type

        • K extends string | number | symbol

          Key type

        Parameters

        • _result: Record<K, undefined | T>

          Resulting record

        • _value: T

          Current value

        • key: K

          Key that has a conflict

        Returns never

        Always throws on conflict