0.0.0 • Published 6 years ago
manatki v0.0.0
lc
Dependency-free library for functional programming in Typescript/Javascript
Status: in development (v0.0.0)
Features
- Options
declare class Option<T> implements Optionable<T> {
static Some<T>(value: T): Option<T>;
static None(): Option<{}>;
value?: T;
isEmpty: boolean;
isDefined: boolean;
constructor(value?: T);
getOrElse<V>(stopGap: V): T | V;
orElse<V>(fallback: Option<V>): Option<T | V>;
map<P>(func: (val: T) => P): Option<P | T>;
flatMap<P>(func: (val: T) => Option<P>): Option<T | P>;
coflatMap<P>(func: (val: Option<T>) => P): Option<T | P>;
forEach(func: (val: T) => void): void;
filter(pred: (val: T) => boolean): Option<T>;
flatten<K>(): Option<T | K>;
combine<P>(that: Option<P>): Option<T | P>;
match<P>(object: Matcher<Option<T>, P>): any;
}
- Either
declare class Either<K, T> implements Validatable<K, T> {
static Left<T>(val: T): Either<T, any>;
static Right<T>(val: T): Either<any, T>;
isLeft: boolean;
isRight: boolean;
private readonly _left;
private readonly _right;
constructor(left: K, right: T);
left(): LProjection<K, T>;
right(): RProjection<K, T>;
getOrElse<P>(stopGap: P): T | P;
swap(): Either<T, K>;
joinLeft(): void;
joinRight(): void;
fold(): void;
}
Interfaces
interface Traversable<T> {
map<P>(func: (val: T) => P): Option<P | T>;
flatMap<P>(func: (val: T) => Option<P>): Option<T | P>;
coflatMap<P>(func: (val: Option<T>) => P): Option<T | P>;
combine<P>(that: Option<P>): Option<T | P>;
forEach(func: (val: T) => void): void;
filter(pred: (val: T) => boolean): Option<T>;
flatten(): Option<T>;
}
interface Optionable<T> extends Traversable<T> {
isEmpty: boolean;
isDefined: boolean;
getOrElse<V>(stopGap: V): T | V;
orElse<V>(fallback: Option<V>): Option<T | V>;
match<P>(object: Matcher<Option<T>, P>): any;
value?: T;
}
License
MIT
0.0.0
6 years ago