All files / result/operator mapFailure.ts

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

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 9 10 11 12 13 14  1x   2x     2x   1x   1x      
import {UnaryFunction} from 'fnxt/fnxt-types';
import {Failure, Result, ResultType} from '../result';
 
export const mapFailure = <T, R1, R2>(fn: UnaryFunction<R1, R2>) => (
  result: Result<T, R1>
): Result<T, R2> => {
  switch (result.type) {
    case ResultType.Success:
      return result;
    case ResultType.Failure:
      return Failure(fn(result.value));
  }
};