v_is_empty_value
TypeScript icon, indicating that this package has built-in type declarations

2.1.10 • Public • Published

👨‍💻 v_is_empty_value

Simple checker for Empty/NotEmpty values. Checking Numbers, Null, NaN, Strings, Objects, Arrays...Will also detect instance of Date() object and return "not-empty" value for it.

Codacy Badge CodeQL njsscan sarif

General Information

It provides 4 functions to check if a value is empty or not. These are named as follows:

  • isEmpty(v) : Checks if a value is empty. Returns true if the value is empty, else false.
  • isNotEmpty(v) : Checks if a value is not empty. Returns true if the value is not empty, else false.
  • isEmptyNested(v) : Checks if a nested value is empty.
    • It will check nested values in Objects and Arrays.
    • It will use recursion to check nested values.
    • Uses isEmpty(v) to check if a value is empty under the hood.
    • Returns true if the nested value is empty, else false.
  • isNotEmptyNested(v) : Checks if a nested value is not empty. Returns true if the nested value is not empty, else false.

    NOTE: This basically does the opposite of isEmptyNested(v).

Base Example

// import { isEmpty, isNotEmpty, isEmptyNested, isNotEmptyNested } from 'v_is_empty_value'
const { isEmpty, isNotEmpty, isEmptyNested, isNotEmptyNested } = require('v_is_empty_value')

isEmpty(v) // Checks if a value is empty.

isNotEmpty(v) // Checks if a value is not empty.

isEmptyNested(v) // Checks if a nested value is empty.

isNotEmptyNested(v) // Checks if a nested value is not empty.

☑ Things it confirms Empty

  • Undefined / Empty
console.log(isEmpty()) // prints "true"
console.log(isNotEmpty()) // prints "false"
  • Empty String
console.log(isEmpty('')) // prints "true"
console.log(isNotEmpty('')) // prints "false"
  • null
console.log(isEmpty(null)) // prints "true"
console.log(isNotEmpty(null)) // prints "false"
  • Undefined
console.log(isEmpty(undefined)) // prints "true"
console.log(isNotEmpty(undefined)) // prints "false"
  • Empty Object
console.log(isEmpty({})) // prints "true"
console.log(isNotEmpty({})) // prints "false"
  • Empty Array
console.log(isEmpty([])) // prints "true"
console.log(isNotEmpty([])) // prints "false"

☑ Few things it confirms NOT Empty

  • String with some length/value.
isEmpty('demo_password_123456') // prints "false"
isNotEmpty('demo_password_123456') // prints "true"
  • NaN
console.log(isEmpty(NaN)) // prints "false"
console.log(isNotEmpty(NaN)) // prints "true"
  • Date instance.
isEmpty(new Date()) // prints "false"
isNotEmpty(new Date()) // prints "true"
  • Error instance.
isEmpty(new Error()) // prints "false"
isNotEmpty(new Error()) // prints "true"
  • Promise instance.
isEmpty(new Promise((resolve, reject) => resolve(true))) // prints "false"
isNotEmpty(new Promise((resolve, reject) => resolve(true))) // prints "true"
  • Number instance.
console.log(Number()) // prints "0"
console.log(isEmpty(Number())) // prints "false"
console.log(isNotEmpty(Number())) // prints "true"

Note: It will return false for 0 and -0 as well.

  • Nested Object : confirms not empty even though it has empty values.
const nestedEmptyObject = {
  demo: null,
  yea: undefined,
  iKnowMan: {
    wtf: null,
    moreNull: null
  }
}

// NOTE: Returns "false" just because "iKnowMan" is an object.
console.log(isEmpty(nestedEmptyObject)) // prints "false"
console.log(isNotEmpty(nestedEmptyObject)) // prints "true"

// NOTE: Better use "isEmptyNested(v)" to check nested values.
console.log(isEmptyNested(nestedEmptyObject)) // prints "true"
console.log(isNotEmptyNested(nestedEmptyObject)) // prints "false"

📜 More Info:
Check the test cases for more examples.


🚀 Performance Benchmark

This will basically run the functions mentioned for 25mil. times and will print the time taken for each function to complete.

📋 Test setup:

  • AMD Ryzen 7 2700X Eight-Core Processor 3.70 GHz
  • 16 GB 3000 MHz DDR4
  • Patriot P300 256GB M.2 NVMe
  • Windows 10 Pro 64-bit
  • Node.js v20.10.0

📊 Current performance:

  • isEmpty(v) : ~ 40,000 ops/ms [ 40 mil. ops/sec ]
  • isNotEmpty(v) : ~ 32,000 ops/ms [ 32 mil. ops/sec ]
  • isEmptyNested(v) : ~ 30,000 ops/ms [ 30 mil. ops/sec ]
  • isNotEmptyNested(v) : ~ 31,000 ops/ms [ 31 mil. ops/sec ]

📑 Related links :

Package Sidebar

Install

npm i v_is_empty_value

Weekly Downloads

35

Version

2.1.10

License

MIT

Unpacked Size

40.4 kB

Total Files

19

Last publish

Collaborators

  • v-core9