UNPKG

@eeue56/ts-core

Version:

Core library for TypeScript inspired by Elm

22 lines (21 loc) 1.58 kB
import * as Maybe from './maybe'; export declare type Err<Error> = { kind: 'Err'; error: Error; }; export declare type Ok<Value> = { kind: 'Ok'; value: Value; }; export declare type Result<Error, Value> = Ok<Value> | Err<Error>; export declare function Ok<Error, Value>(value: Value): Result<Error, Value>; export declare function Err<Error, Value>(error: Error): Result<Error, Value>; export declare function withDefault<Error, Value>(value: Value, result: Result<Error, Value>): Value; export declare function either<A>(result: Result<A, A>): A; export declare function toMaybe<Error, Value>(result: Result<Error, Value>): Maybe.Maybe<Value>; export declare function fromMaybe<Error, Value>(error: Error, maybe: Maybe.Maybe<Value>): Result<Error, Value>; export declare function map<Error, A, Value>(func: (val: A) => Value, result: Result<Error, A>): Result<Error, Value>; export declare function map2<Error, A, B, Value>(func: (firstResult: A, secondResult: B) => Value, firstResult: Result<Error, A>, secondResult: Result<Error, B>): Result<Error, Value>; export declare function map3<Error, A, B, C, Value>(func: (firstResult: A, secondResult: B, thirdResult: C) => Value, firstResult: Result<Error, A>, secondResult: Result<Error, B>, thirdResult: Result<Error, C>): Result<Error, Value>; export declare function mapError<ErrorA, ErrorB, Value>(func: (val: ErrorA) => ErrorB, result: Result<ErrorA, Value>): Result<ErrorB, Value>; export declare function andThen<Error, A, B>(func: (value: A) => Result<Error, B>, result: Result<Error, A>): Result<Error, B>;