All files / result/operator bindAsync.ts

100% Statements 5/5
100% Branches 2/2
100% Functions 2/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 91x     1x 2x 2x      
import {Result, ResultType} from '../result';
import {UnaryFunction} from '../../fnxt-types';
 
export const bindAsync = <T, R, Err>(fn: UnaryFunction<T, Promise<Result<R, Err>>>) =>
  async (result: Result<T, Err>): Promise<Result<R, Err>> =>
    (result.type === ResultType.Failure) ? result : fn(result.value);