import { Mapper } from '../Mapper' import { aggregate } from './aggregate' import { success } from './constructors' import { Result } from './index' export const map = (mapper: Mapper) => (result: Result): Result => { if (result.success) { return success(mapper(result.data)) } else { return result } } export const mapMany = (mapper: Mapper) => (results: Result[]) => { const final = aggregate(results) return map(mapper)(final) }