Hyperlinkv0.8.0-beta.28

Record

Record.getFailuresconsteffect/Record.ts:862
<K extends string, A, E>(self: ReadonlyRecord<K, Result<A, E>>): Record<
  ReadonlyRecord.NonLiteralKey<K>,
  E
>

Returns a new record containing only the Err values from a record of Result values, preserving the original keys.

Example (Extracting Result failures)

import { Record, Result } from "effect"
import * as assert from "node:assert"

assert.deepStrictEqual(
  Record.getFailures({
    a: Result.succeed(1),
    b: Result.fail("err"),
    c: Result.succeed(2)
  }),
  { b: "err" }
)
filtering
Source effect/Record.ts:86213 lines
export const getFailures = <K extends string, A, E>(
  self: ReadonlyRecord<K, Result<A, E>>
): Record<ReadonlyRecord.NonLiteralKey<K>, E> => {
  const out: Record<string, E> = empty()
  for (const key of keys(self)) {
    const value = self[key]
    if (R.isFailure(value)) {
      out[key] = value.failure
    }
  }

  return out
}