Files
30-seconds-of-code/node_modules/gatsby-telemetry/lib/is-truthy.js
2019-08-20 15:52:05 +02:00

21 lines
679 B
JavaScript

"use strict";
// Returns true for `true`, true, positive numbers
// Returns false for `false`, false, 0, negative integers and anything else
const isTruthy = value => {
// Return if Boolean
if (typeof value === `boolean`) return value; // Return false if null or undefined
if (value === undefined || value === null) return false; // If the String is true or false
if (value.toLowerCase() === `true`) return true;
if (value.toLowerCase() === `false`) return false; // Now check if it's a number
const number = parseInt(value, 10);
if (isNaN(number)) return false;
if (number > 0) return true; // Default to false
return false;
};
module.exports = isTruthy;