baldrick-broth
Version:
Build automation tool and task runner
22 lines (21 loc) • 586 B
JavaScript
/**
* Return a successful response
*/
export const succeed = (a) => ({
status: 'success',
value: a,
});
/**
* Return a failure result
*/
export const willFail = (e) => ({
status: 'failure',
error: e,
});
export const withDefault = (defaultValue) => (result) => result.status === 'success' ? result.value : defaultValue;
export const map1 = (func) => (result) => {
return result.status === 'success' ? succeed(func(result.value)) : result;
};
export const andThen = (func) => (result) => {
return result.status === 'success' ? func(result.value) : result;
};