Hyperlinkv0.8.0-beta.28

Redacted

Redacted.makeEquivalenceconsteffect/Redacted.ts:313
<A>(isEquivalent: Equivalence.Equivalence<A>): Equivalence.Equivalence<
  Redacted<A>
>

Generates an equivalence relation for Redacted<A> values based on an equivalence relation for the underlying values A. This function is useful for comparing Redacted instances without exposing their contents.

When to use

Use when you need to compare wrapped secrets through an approved equality rule without exposing the underlying values at each comparison site.

Example (Comparing redacted values)

import { Equivalence, Redacted } from "effect"
import * as assert from "node:assert"

const API_KEY1 = Redacted.make("1234567890")
const API_KEY2 = Redacted.make("1-34567890")
const API_KEY3 = Redacted.make("1234567890")

const equivalence = Redacted.makeEquivalence(Equivalence.strictEqual<string>())

assert.equal(equivalence(API_KEY1, API_KEY2), false)
assert.equal(equivalence(API_KEY1, API_KEY3), true)
instances
export const makeEquivalence = <A>(isEquivalent: Equivalence.Equivalence<A>): Equivalence.Equivalence<Redacted<A>> =>
  Equivalence.make((x, y) => isEquivalent(value(x), value(y)))
Referenced by 1 symbols