Skip to content

Commit

Permalink
feat: add Object.ensureFiniteNumber util
Browse files Browse the repository at this point in the history
  • Loading branch information
medikoo committed Aug 11, 2017
1 parent 5d01a72 commit 11c67f5
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
9 changes: 9 additions & 0 deletions object/ensure-finite-number.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"use strict";

var isFiniteNumber = require("./is-finite-number")
, safeToString = require("../safe-to-string");

module.exports = function (value) {
if (isFiniteNumber(value)) return Number(value);
throw new TypeError(safeToString + " does not represent a finite number value");
};
1 change: 1 addition & 0 deletions object/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module.exports = {
copyDeep: require("./copy-deep"),
count: require("./count"),
create: require("./create"),
ensureFiniteNumber: require("./ensure-finite-number"),
ensureNaturalNumber: require("./ensure-natural-number"),
ensureNaturalNumberValue: require("./ensure-natural-number-value"),
ensurePromise: require("./ensure-promise"),
Expand Down
54 changes: 54 additions & 0 deletions test/object/ensure-finite-number.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"use strict";

module.exports = function (t, a) {
a.throws(
function () {
t(undefined);
},
TypeError,
"Undefined"
);
a.throws(
function () {
t(null);
},
TypeError,
"Null"
);
a(t(0), 0, "Zero");
a.throws(
function () {
t(NaN);
},
TypeError,
"NaN"
);
a.throws(
function () {
t(Infinity);
},
TypeError,
"Infinity"
);
a(t(12), 12, "Number");
a(t(false), 0, "Boolean");
a(t(new Date(1000000)), 1000000, "Date");
a(t(new Number(2)), 2, "Number object");
a.throws(
function () {
t("asdfaf");
},
TypeError,
"String"
);
a(t(""), 0, "Empty String");
if (typeof Symbol === "function") {
a.throws(
function () {
t(Symbol("test"));
},
TypeError,
"Symbol"
);
}
};

0 comments on commit 11c67f5

Please sign in to comment.