All files / result/operator mapAsync.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  1x   1x 2x 2x  
import {UnaryFunction} from '../../fnxt-types';
import {Result, ResultType, Success} from '../result';
 
export const mapAsync = <T, R>(fn: UnaryFunction<T, Promise<R>>) =>
  async <Err>(result: Result<T, Err>): Promise<Result<R, Err>> =>
    (result.type === ResultType.Failure) ? result : Success(await fn(result.value));