moltres-utils
Version:
Utils for Moltres apps
71 lines (57 loc) • 1.59 kB
JavaScript
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isFunction = _interopRequireDefault(require("./isFunction"));
var _isPromise = _interopRequireDefault(require("./isPromise"));
var _toNumber = _interopRequireDefault(require("./toNumber"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;
var MAX_INTEGER = 1.7976931348623157e308;
/**
* Converts `value` to a finite number.
*
* @function
* @since v0.0.7
* @category lang
* @param {*} value The value to convert.
* @returns {number} Returns the converted number.
* @example
*
* toFinite(3.2)
* // => 3.2
*
* toFinite(Number.MIN_VALUE)
* // => 5e-324
*
* toFinite(Infinity)
* // => 1.7976931348623157e+308
*
* toFinite('3.2')
* // => 3.2
*/
var toFinite = function toFinite(value) {
if ((0, _isPromise.default)(value)) {
return value.then(function (resolvedValue) {
return toFinite(resolvedValue);
});
}
if (value != null && (0, _isFunction.default)(value.toFinite)) {
return value.toFinite();
}
if (!value) {
return value === 0 ? value : 0;
}
value = (0, _toNumber.default)(value);
if (value === INFINITY || value === -INFINITY) {
var sign = value < 0 ? -1 : 1;
return sign * MAX_INTEGER;
}
return value === value ? value : 0;
};
var _default = toFinite;
exports.default = _default;
//# sourceMappingURL=toFinite.js.map
;