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