1 | ;
|
2 |
|
3 | // Returns true for `true`, true, positive numbers
|
4 | // Returns false for `false`, false, 0, negative integers and anything else
|
5 | const isTruthy = value => {
|
6 | // Return if Boolean
|
7 | if (typeof value === `boolean`) return value; // Return false if null or undefined
|
8 |
|
9 | if (value === undefined || value === null) return false; // If the String is true or false
|
10 |
|
11 | if (value.toLowerCase() === `true`) return true;
|
12 | if (value.toLowerCase() === `false`) return false; // Now check if it's a number
|
13 |
|
14 | const number = parseInt(value, 10);
|
15 | if (isNaN(number)) return false;
|
16 | if (number > 0) return true; // Default to false
|
17 |
|
18 | return false;
|
19 | };
|
20 |
|
21 | module.exports = isTruthy; |
\ | No newline at end of file |