UNPKG

cond-flow

Version:

Elixir style cond for easy javascript control flow

19 lines (18 loc) 563 B
type Value<T> = T | (() => T); type Pairs<T> = [boolean, Value<T>][]; type Options<T> = { /** * If no match is found, the default is returned instead. * @default undefined */ default?: Value<T>; }; interface Cond { <T, F extends undefined>(pairs: Pairs<T>, options?: F): T | undefined; <T1, F1 extends Value<T1>>(pairs: Pairs<T1>, options?: { default: F1; }): F1 extends Value<T1> ? T1 : T1 | undefined; <T2>(pairs: Pairs<T2>, options?: Options<T2>): T2 | undefined; } declare const cond: Cond; export default cond;