@eluvio/elv-js-helpers
Version:
A collection of Javascript helper functions used by several Eluvio libraries.
47 lines (45 loc) • 1.4 kB
JavaScript
'use strict'
/**
* Passthrough for the [fraction.js](https://github.com/infusion/Fraction.js/) constructor
* _(Copyright © 2017 Robert Eisele, MIT license)_
*
* See [https://www.npmjs.com/package/fraction.js](https://www.npmjs.com/package/fraction.js) for more details.
*
* Provided for convenience and to encourage standardization.
*
* Accepts a number or string representation of a rational number and returns a `fraction.js` object.
*
* @function
* @category Conversion
* @sig String | Number -> Object
* @param {(String | Number)} - The value to convert into a fraction.js object
* @returns {Object} A fraction.js object
* @example
*
* 'use strict'
* const fraction = require('@eluvio/elv-js-helpers/Conversion/fraction')
*
* fraction(4.2).toFraction(true) //=> '4 1/5'
*
* fraction('foo').toFraction(true) //=> EXCEPTION: 'Invalid argument'
*
* fraction('1/0').toFraction(true) //=> EXCEPTION: 'Division by Zero'
*
* fraction(4.2).toFraction(true) //=> '4 1/5'
*
* fraction('22/7').valueOf() //=> 3.142857142857143
*
* // .s returns sign:
* fraction('-22/7').s //=> -1
*
* // .n returns numerator
* fraction('-22/7').n //=> 22
*
* // .d returns denominator
* fraction('-22/7').d //=> 7
*
* fraction('9 3/4').valueOf() //=> 9.75
*
*/
const fraction = require('fraction.js')
module.exports = fraction