Redacted overview
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.
Added in v3.3.0
Table of contents
constructors
make
This function creates a Redacted<A>
instance from a given value A
, securely hiding its content.
Signature
export declare const make: <A>(value: A) => Redacted<A>
Example
import { Redacted } from "effect"
const API_KEY = Redacted.make("1234567890")
Added in v3.3.0
equivalence
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.
Signature
export declare const getEquivalence: <A>(
isEquivalent: Equivalence.Equivalence<A>
) => Equivalence.Equivalence<Redacted<A>>
Example
import { Redacted, Equivalence } from "effect"
const API_KEY1 = Redacted.make("1234567890")
const API_KEY2 = Redacted.make("1-34567890")
const API_KEY3 = Redacted.make("1234567890")
const equivalence = Redacted.getEquivalence(Equivalence.string)
assert.equal(equivalence(API_KEY1, API_KEY2), false)
assert.equal(equivalence(API_KEY1, API_KEY3), true)
Added in v3.3.0
getters
value
Retrieves the original value from a Redacted
instance. Use this function with caution, as it exposes the sensitive data.
Signature
export declare const value: <A>(self: Redacted<A>) => A
Example
import { Redacted } from "effect"
const API_KEY = Redacted.make("1234567890")
assert.equal(Redacted.value(API_KEY), "1234567890")
Added in v3.3.0
models
Redacted (interface)
Signature
export interface Redacted<out A = string> extends Redacted.Variance<A>, Equal.Equal, Pipeable {}
Added in v3.3.0
refinements
isRedacted
Signature
export declare const isRedacted: (u: unknown) => u is Redacted<unknown>
Added in v3.3.0
symbols
RedactedTypeId
Signature
export declare const RedactedTypeId: typeof RedactedTypeId
Added in v3.3.0
RedactedTypeId (type alias)
Signature
export type RedactedTypeId = typeof RedactedTypeId
Added in v3.3.0
unsafe
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.
Signature
export declare const unsafeWipe: <A>(self: Redacted<A>) => boolean
Example
import { Redacted } from "effect"
const API_KEY = Redacted.make("1234567890")
assert.equal(Redacted.value(API_KEY), "1234567890")
Redacted.unsafeWipe(API_KEY)
assert.throws(() => Redacted.value(API_KEY), new Error("Unable to get redacted value"))
Added in v3.3.0
utils
Redacted (namespace)
Added in v3.3.0
Variance (interface)
Signature
export interface Variance<out A> {
readonly [RedactedTypeId]: {
readonly _A: Covariant<A>
}
}
Added in v3.3.0
Value (type alias)
Signature
export type Value<T extends Redacted<any>> = [T] extends [Redacted<infer _A>] ? _A : never
Added in v3.3.0