@eluvio/elv-js-helpers
Version:
A collection of Javascript helper functions used by several Eluvio libraries.
35 lines (31 loc) • 988 B
JavaScript
const either = require('../Functional/either')
const identity = require('../Functional/identity')
const _throwIfNotResult = require('../Validation/_throwIfNotResult')
/**
* Returns the value wrapped by a [Crocks Result](https://crocks.dev/docs/crocks/Result.html), whether it is an Ok
* or an Err
*
* Throws an exception if not passed a Result.
*
* @function
* @category Conversion
* @sig Result e a -> e | a
* @param {*} x - The Crocks Result instance to unwrap
* @returns {Any}
* @see resultToPOJO
* @example
*
* 'use strict'
* const resultUnwrap = require('@eluvio/elv-js-helpers/Conversion/resultUnwrap')
*
* const Err = require('@eluvio/elv-js-helpers/ADT/Err')
* const Ok = require('@eluvio/elv-js-helpers/ADT/Ok')
*
* resultUnwrap(Err(['invalid query'])) //=> ['invalid query']
*
* resultUnwrap(Ok(42)) //=> 42
*
*/
const resultUnwrap = x => _throwIfNotResult(x) && either(identity,identity, x)
module.exports = resultUnwrap