JSPM

@sonofjavascript/js-compare

1.0.5
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q37860F
    • License MIT

    Lightweight and simple Javascript tool to compare equality with objects, arrays and other Javascript object types.

    Package Exports

    • @sonofjavascript/js-compare

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@sonofjavascript/js-compare) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    npm Build Status Coverage Status MIT license

    JS Compare

    Lightweight and simple Javascript tool to compare equality with objects, arrays and other Javascript object types.

    Note: Errors and Functions objects are not allowed to compare.

    Installation

    npm install --save @sonofjavascript/js-compare

    Methods

    equal

    Compares if two javascript objects are equal.

    Objects

    The keys are compared with the values. Objects will be equally true when have the same keys with the same values. Values can be objects itself or any Javascript object type.

    import { equal } from '@sonofjavascript/js-compare'
    
    const object1 = { key: '::value::' }
    const object2 = { key: '::value::' }
    const object3 = { key: '::value3::' }
    
    equal(object1, object2) // true
    equal(object1, object3) // false

    Arrays

    An array can contain any kind of Javascript object type. The only matters is the order and the items value.

    import { equal } from '@sonofjavascript/js-compare'
    
    const array1 = ['::value1::', '::value2::']
    const array2 = ['::value1::', '::value2::']
    const array3 = ['::value2::', '::value1::']
    
    equal(array1, array2) // true
    equal(array1, array3) // false

    Atomic types

    Simple javascript types can be compared too, although these comparations can be implemented in a much more simple way in pure Javascript with the === operator.

    import { equal } from '@sonofjavascript/js-compare'
    
    equal(1, 1) // true
    equal(1, 2) // false
    
    equal('::string::', '::string::') // true
    equal('::string1::', '::string2::') // false
    
    equal(Symbol('::symbol::', Symbol('::symbol::')) // true
    equal(Symbol('::symbol1::', Symbol('::symbol2::')) // false
    
    equal(true, true) // true
    equal(true, false) // false
    
    equal(null, null) // true
    equal(null, undefinded) // false
    
    equal() // true
    equal(undefined, undefined) // true
    equal(null, undefinded) // false

    isEmpty

    Check if a Javascript object is empty.

    Objects

    Check if is not defined or has no keys.

    import { isEmpty }  from '@sonofjavascript/js-compare'
    
    isEmpty() // true
    isEmpty({}) // true
    isEmpty({ key: '::value::' }) // false

    Arrays

    Check if is not defined or has more than one items.

    import { isEmpty }  from '@sonofjavascript/js-compare'
    
    isEmpty() // true
    isEmpty([]) // true
    isEmpty(['::value::']) // false

    Atomic types

    Simple javascript types can be checked if they are empty too, although you can do it simplier comparing it to undefined/null without using this library.

    import { isEmpty }  from '@sonofjavascript/js-compare'
    
    isEmpty() // true
    isEmpty(null) // true
    isEmpty('::value::') // false

    Contributing

    Contributions welcome; Please submit all pull requests the against master branch. If your pull request contains JavaScript patches or features, you should include relevant unit tests. Please check the Contributing Guidelines for more details. Thanks!

    Author

    Albert Pérez Farrés

    License