Hyperlinkv0.8.0-beta.28

Record

Record.getSuccessesconsteffect/Record.ts:899
<K extends string, A, E>(self: ReadonlyRecord<K, Result<A, E>>): Record<
  string,
  A
>

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

Example (Extracting Result successes)

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

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

  return out
}