New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

@engineersamuel/istruthy

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@engineersamuel/istruthy

Truthiness with options

1.0.1
latest
Version published
Weekly downloads
1
-95%
Maintainers
1
Weekly downloads
 
Created


⚖️
Truthiness with options!


npm package github issues npm downloads

npm i @engineersamuel/istruthy

Zero dependency micro-library (1kb minified / 2.7kb unminified)

Table of Contents

Why

Most truthiness libraries are either extremely basic or simply adhere to the standard defnition of Truthy in JavaScript.

However, what happens when you want to consider '', [], {}, 0, or [null] false? This is where @engineersamuel/istruthy comes in.

Install

$ npm i -D @engineersamuel/istruthy

Usage

import { isTruthy, isFalsy } from '@engineersamuel/istruthy';

console.log(isTruthy('abc')); // prints true
console.log(isTruthy('', { isEmptyStringFalse: true })); // prints false

console.log(isFalse('abc')); // prints false
console.log(isFalsy('', { isEmptyStringFalse: true })); // prints true

See the *.spec.ts files in the ./test directory for a great reference on using isTruthy.

If you want to reference this library directly in html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>My Page</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Other resources here -->
    <!-- ... -->
    <!-- Assembler CSS -->
    <script src="https://cdn.jsdelivr.net/npm/@engineersamuel/istruthy@1.0.0/dist/index.min.js"></script>
</head>
<body>
<!-- Your code here -->
  <script>
    console.log(Truthiness.isTruthy('abc')); // prints true
    console.log(Truthiness.isTruthy('', { isEmptyStringFalse: true })); // prints false

    console.log(Truthiness.isFalse('abc')); // prints false
    console.log(Truthiness.isFalsy('', { isEmptyStringFalse: true })); // prints true
  </script>
</body>
</html>

Note that the UMD is built with rollup.js (Which is minimally necessary considering there are no dependencies) and the global variable name is Truthiness hence in the above browser environment you would access isTruthy via Truthiness.isTruthy.

Config

OptionDefaultDescription
isZeroFalsefalseWhen set to true then 0 will be will be evaluated to false. Ex. isTruthy(0, { isZeroFalse: true}); // returns false
isInfinityFalsefalseWhen set to true then Infinity and -Infinity will be will be evaluated to false. Ex. isTruthy(Infinity, { isInfinityFalse: true}); // returns false
isEmptyStringFalsefalseWhen set to true then '' will be will be evaluated to false. Ex. isTruthy('', { isEmptyStringFalse: true}); // returns false
isEmptyObjectFalsefalseWhen set to true then {} will be will be evaluated to false. Ex. isTruthy({}, { isEmptyObjectFalse: true}); // returns false
isEmptyArrayFalsefalseWhen set to true then [] will be will be evaluated to false. Ex. isTruthy([], { isEmptyArrayFalse: true}); // returns false
isFilteredArrayFalsefalseWhen set to true then [null, undefined] will be will be evaluated to false. Ex. isTruthy([null, undefined], { isFilteredArrayFalse: true }); // returns false Note: This specific flag will recursively check each value, so passing options to isTruthy are recursively respected.
isFalsyArrayFalsefalseWhen set to true then [null, undefined] will be will be evaluated to false. Ex. isTruthy([null, undefined], { isFalsyArrayFalse: true})/ // returns false Ex. isTruthy([0, ''], { isFalsyArrayFalse: true, isZeroFalse: true, isEmptyStringFalse: true }); // returns false Note: This specific flag will recursively check each value, so passing options to isTruthy are recursively respected.

Testing

npm run test

  63 passing (38ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |
 index.ts |     100 |      100 |     100 |     100 |
----------|---------|----------|---------|---------|-------------------

Contributing

  • npm i
  • make code changes
  • npm run test
  • npm run lint
  • npm run build

Publishing

  • Bump the package.json version
  • npm publish --access public
  • git tag vx.y.z
  • git push origin --tags

License

MIT

FAQs

Package last updated on 12 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts