Redacted
On this page
The Redacted module provides functionality for handling sensitive information securely within your application.
By using the Redacted
data type, you can ensure that sensitive values are not accidentally exposed in logs or error messages.
make
This function creates a Redacted<A>
instance from a given value A
, securely hiding its content.
ts
import {Redacted } from "effect"// Creating a redacted valueconstAPI_KEY =Redacted .make ("1234567890")console .log (API_KEY ) // Output: {}console .log (String (API_KEY )) // Output: <redacted>
ts
import {Redacted } from "effect"// Creating a redacted valueconstAPI_KEY =Redacted .make ("1234567890")console .log (API_KEY ) // Output: {}console .log (String (API_KEY )) // Output: <redacted>
value
Retrieves the original value from a Redacted
instance. Use this function with caution, as it exposes the sensitive data.
ts
import {Redacted } from "effect"constAPI_KEY =Redacted .make ("1234567890")console .log (Redacted .value (API_KEY )) // Output: "1234567890"
ts
import {Redacted } from "effect"constAPI_KEY =Redacted .make ("1234567890")console .log (Redacted .value (API_KEY )) // Output: "1234567890"
unsafeWipe
Erases the underlying value of a Redacted
instance, rendering it unusable. This function is intended to ensure that sensitive data does not remain in memory longer than necessary.
ts
import {Redacted } from "effect"constAPI_KEY =Redacted .make ("1234567890")console .log (Redacted .value (API_KEY )) // Output: "1234567890"Redacted .unsafeWipe (API_KEY )console .log (Redacted .value (API_KEY )) // throws Error: Unable to get redacted value
ts
import {Redacted } from "effect"constAPI_KEY =Redacted .make ("1234567890")console .log (Redacted .value (API_KEY )) // Output: "1234567890"Redacted .unsafeWipe (API_KEY )console .log (Redacted .value (API_KEY )) // throws Error: Unable to get redacted value
getEquivalence
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.
ts
import {Redacted ,Equivalence } from "effect"constAPI_KEY1 =Redacted .make ("1234567890")constAPI_KEY2 =Redacted .make ("1-34567890")constAPI_KEY3 =Redacted .make ("1234567890")constequivalence =Redacted .getEquivalence (Equivalence .string )console .log (equivalence (API_KEY1 ,API_KEY2 )) // Output: falseconsole .log (equivalence (API_KEY1 ,API_KEY3 )) // Output: true
ts
import {Redacted ,Equivalence } from "effect"constAPI_KEY1 =Redacted .make ("1234567890")constAPI_KEY2 =Redacted .make ("1-34567890")constAPI_KEY3 =Redacted .make ("1234567890")constequivalence =Redacted .getEquivalence (Equivalence .string )console .log (equivalence (API_KEY1 ,API_KEY2 )) // Output: falseconsole .log (equivalence (API_KEY1 ,API_KEY3 )) // Output: true