Skip to main content Link Search Menu Expand Document (external link)

Atom overview

Added in v1.0.0


Table of contents


Compositions

index

Return an AtomOption from an Atom focused on an index of a ReadonlyArray. If you set None it won’t change the ReadonlyArray. If the index is out of bound, it won’t change the ReadonlyArray no matter what you pass as Option.

Signature

export declare const index: <A>(index: number, eq?: Eq<A> | undefined) => (sa: Atom<readonly A[]>) => Atom<Option<A>>

Added in v1.0.0

key

Return an AtomOption from an Atom focused on a key of a ReadonlyRecord. If you set None it won’t change the ReadonlyRecord.

Signature

export declare const key: <A>(
  key: string,
  eq?: Eq<A> | undefined
) => (sa: Atom<Readonly<Record<string, A>>>) => Atom<Option<A>>

Added in v1.0.0

lens

Compose an Atom with a Lens.

Signature

export declare const lens: <A, B>(ab: Lens<A, B>, eq?: Eq<B> | undefined) => (a: Atom<A>) => Atom<B>

Added in v1.0.0

prop

Return an Atom from an Atom and prop.

Signature

export declare const prop: <A, P extends keyof A>(prop: P, eq?: Eq<A[P]> | undefined) => (sa: Atom<A>) => Atom<A[P]>

Added in v1.0.0

Constructors

fromIO

Signature

export declare const fromIO: NaturalTransformation11<'IO', 'Atom'>

Added in v1.0.0

getOf

Signature

export declare const getOf: <A>(eq: Eq<A>) => (a: A) => Atom<A>

Added in v3.0.0

make

Signature

export declare const make: <T>(evaluate: (prev: Option<T>) => T, source: any, eq: Eq<T>) => Atom<T>

Added in v1.0.0

of

Signature

export declare const of: <A>(a: A) => Atom<A>

Added in v1.0.0

Converters

toReadonlyAtom

Convert an Atom to ReadonlyAtom.

Signature

export declare const toReadonlyAtom: <T>(a: Atom<T>) => ReadonlyAtom<T>

Added in v1.0.0

Instances

FromIO

Signature

export declare const FromIO: FromIO1<'Atom'>

Added in v1.0.0

Pointed

Signature

export declare const Pointed: Pointed1<'Atom'>

Added in v1.0.0

URI

Signature

export declare const URI: 'Atom'

Added in v1.0.0

URI (type alias)

Signature

export type URI = typeof URI

Added in v1.0.0

Model

Atom (interface)

Signature

export interface Atom<T> extends Observable<T> {
  eq: Eq<T>
  get: () => T
  set: (next: T) => void
}

Added in v1.0.0

Refinements

isAtom

Signature

export declare const isAtom: <T>(fa: unknown) => fa is Atom<T>

Added in v1.0.0

Utils

distinct

Return an Atom from an Atom with new Eq instance.

Signature

export declare const distinct: <A>(eq: Eq<A>) => Endomorphism<Atom<A>>

Added in v1.1.0

modify

Sequence of Atom.get and Atom.set using Endomorphism to modify the value.

Signature

export declare const modify: <A>(e: Endomorphism<A>) => (a: Atom<A>) => void

Added in v1.1.0

modifyV

Like modify but flipped, which the “V” suffix denotes.

Signature

export declare const modifyV: <A>(a: Atom<A>) => (e: Endomorphism<A>) => void

Added in v1.1.0

withDefault

Return an Atom from an AtomOption replacing None with the given value.

Signature

export declare const withDefault: <A>(d: Lazy<A>, eq?: Eq<A> | undefined) => (sa: Atom<Option<A>>) => Atom<A>

Added in v1.0.0