API Reference Complete API reference for "@deessejs/fp"
type Result < T , E > = Ok < T , E > | Err < T , E >;
interface Ok < T , E = never > {
readonly _tag : 'Ok' ;
readonly value : T ;
}
interface Err < T = never , E > {
readonly _tag : 'Err' ;
readonly error : E ;
}
// Create a successful Result
function ok < T >( value : T ) : Ok < T , never >;
// Create a failed Result
function err < E >( error : E ) : Err < never , E >;
Method Signature Returns map(fn: (value: T) => B) => Result<B, E>Transformed Ok flatMap(fn: (value: T) => Result<B, E2>) => Result<B, E | E2>Chained Result mapError(fn: (error: never) => E2) => Result<T, E2>Same Ok filter(predicate: (value: T) => boolean) => Result<T, E>Same or original Ok tap(fn: (value: T) => unknown) => Result<T, E>Same Ok tapAsync(fn: (value: T) => Promise<unknown>) => Promise<Result<T, E>>Same Ok flatMapAsync(fn: (value: T) => Promise<Result<B, E2>>) => Promise<Result<B, E | E2>>Chained Result match(handlers: { ok, err }) => UUfold(onOk, onErr) => UUgetOrElse(defaultValue: T) => TTgetOrThrow(message?: string) => TT or throwsgetOrNull() => T | nullT or nullgetOrUndefined() => T | undefinedT or undefinedtoMaybe() => Maybe<T>Some<T>toOption() => Maybe<T>Some<T>isOk() => this is Ok<T, E>booleanisErr() => this is Err<T, E>boolean
Method Signature Returns map(fn: (value: never) => B) => Result<B, E>Same Err flatMap(fn: (value: never) => Result<B, E2>) => Result<B, E | E2>Same Err mapError(fn: (error: E) => E2) => Result<T, E2>Err with transformed errorfilter(predicate, errorFn?) => Result<T, E>Same Err tap(fn: (value: never) => unknown) => Result<T, E>Same Err tapAsync(fn: (value: never) => Promise<unknown>) => Promise<Result<T, E>>Same Err flatMapAsync(fn: (value: never) => Promise<Result<B, E2>>) => Promise<Result<B, E | E2>>Same Err match(handlers: { ok, err }) => UUfold(onOk, onErr) => UUgetOrElse(defaultValue: T) => TdefaultValuegetOrThrow(message?: string) => neverthrows getOrNull() => nullnullgetOrUndefined() => undefinedundefinedtoMaybe() => Maybe<T>NonetoOption() => Maybe<T>NoneisOk() => this is Ok<T, E>falseisErr() => this is Err<T, E>true
type Maybe < T > = Some < T > | None ;
interface Some < T > {
readonly _tag : 'Some' ;
readonly value : T ;
}
interface None {
readonly _tag : 'None' ;
}
// Create a Some
function some < T >( value : T ) : Some < T >;
// The None singleton
const none : None ;
// Create Maybe from nullable value
function maybe < T >( value : T | null | undefined ) : Maybe < T >;
Method Signature Returns map(fn: (value: T) => B) => Maybe<B>Transformed Some flatMap(fn: (value: T) => Maybe<B>) => Maybe<B>Chained Maybe filter(predicate: (value: T) => boolean) => Maybe<T>Some or NonefilterMap(fn: (value: T) => Maybe<B>) => Maybe<B>Chained Maybe tap(fn: (value: T) => unknown) => Maybe<T>Same Some tapAsync(fn: (value: T) => Promise<unknown>) => Promise<Maybe<T>>Same Some match(handlers: { some, none }) => UUfold(onSome, onNone) => UUgetOrElse(defaultValue: T) => TTgetOrThrow(message?: string) => TT or throwsgetOrNull() => T | nullTgetOrUndefined() => T | undefinedTget<K extends keyof T>(key: K) => Maybe<T[K]>Property as Maybe toResult<E>(error: E) => Result<T, E>Ok<T, E>toArray() => T[][T]toIterable() => Iterable<T>Iterable of T isSome() => this is Some<T>trueisNone() => this is Nonefalse
Method Signature Returns map(_fn) => Maybe<never>NoneflatMap(_fn) => Maybe<never>Nonefilter(_predicate) => Maybe<never>NonefilterMap(_fn) => Maybe<never>Nonetap(_fn) => Maybe<never>NonetapAsync(_fn) => Promise<Maybe<never>>Promise of None match(handlers) => UU from none handlerfold(_onSome, onNone) => UU from onNonegetOrElse(defaultValue: T) => TdefaultValuegetOrThrow(message?: string) => neverthrows getOrNull() => nullnullgetOrUndefined() => undefinedundefinedget(_key) => Maybe<never>NonetoResult<E>(error: E) => Result<never, E>Err<never, E>toArray() => [][]toIterable() => Iterable<never>Empty iterable isSome() => this is Some<never>falseisNone() => this is Nonetrue
type Unit = { readonly _tag : 'Unit' };
const unit : Unit = { _tag: 'Unit' } as const ;
function isUnit ( value : unknown ) : value is Unit ;
// Extract Ok type from Result
type OkType < R extends Result < unknown , unknown >> = R extends Ok < infer T , unknown > ? T : never ;
// Extract Err type from Result
type ErrType < R extends Result < unknown , unknown >> = R extends Ok < unknown , infer E > ? E : never ;
// Extract Some type from Maybe
type SomeType < M extends Maybe < unknown >> = M extends Some < infer T > ? T : never ;
// Type guard for Result
function isResult ( value : unknown ) : value is Result < unknown , unknown >;
// Type guard for Maybe
function isMaybe ( value : unknown ) : value is Maybe < unknown >;
// From '@deessejs/fp'
export { ok, err };
export { some, none, maybe };
export { unit, isUnit };
export type { Ok, Err, Result };
export type { Some, None, Maybe };
export type { Unit };
export type { OkType, ErrType, SomeType };
export { isResult, isMaybe };