Hyperlinkv0.8.0-beta.28

Record

Record.everyconsteffect/Record.ts:1194
<A, K extends string, B extends A>(
  refinement: (value: A, key: K) => value is B
): (self: ReadonlyRecord<K, A>) => self is ReadonlyRecord<K, B>
<A, K extends string>(predicate: (value: A, key: K) => boolean): (
  self: ReadonlyRecord<K, A>
) => boolean
<A, K extends string, B extends A>(
  self: ReadonlyRecord<K, A>,
  refinement: (value: A, key: K) => value is B
): self is ReadonlyRecord<K, B>
<K extends string, A>(
  self: ReadonlyRecord<K, A>,
  predicate: (value: A, key: K) => boolean
): boolean

Checks whether all entries in a record meet a specific condition.

Example (Checking every record value)

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

assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
predicates
Source effect/Record.ts:119424 lines
export const every: {
  <A, K extends string, B extends A>(
    refinement: (value: A, key: K) => value is B
  ): (self: ReadonlyRecord<K, A>) => self is ReadonlyRecord<K, B>
  <A, K extends string>(predicate: (value: A, key: K) => boolean): (self: ReadonlyRecord<K, A>) => boolean
  <A, K extends string, B extends A>(
    self: ReadonlyRecord<K, A>,
    refinement: (value: A, key: K) => value is B
  ): self is ReadonlyRecord<K, B>
  <K extends string, A>(self: ReadonlyRecord<K, A>, predicate: (value: A, key: K) => boolean): boolean
} = dual(
  2,
  <A, K extends string, B extends A>(
    self: ReadonlyRecord<K, A>,
    refinement: (value: A, key: K) => value is B
  ): self is ReadonlyRecord<K, B> => {
    for (const key of keys(self)) {
      if (!refinement(self[key], key)) {
        return false
      }
    }
    return true
  }
)