Author: | MaxRoecker |
---|---|
Views Total: | 11 views |
Official Page: | Go to website |
Last Update: | November 17, 2023 |
License: | MIT |
Preview:

Description:
Evaluable is a tiny yet robust JavaScript library that offers a unique approach to determining the equality of various data types. Similar to the same-value-zero
algorithm used in collections like Set
and Map
, but it also considers custom equals and valueOf methods.
This library differs from built-in JavaScript comparison operators like ==
and ===
, as well as libraries like Immutable.js and Object.is. It aims to provide value equality with sensible handling of edge cases.
How to use it:
1. Install and import the evaluable
module.
# NPM $ npm i evaluable
import { is } from 'evaluable';
2. The is()
function in Evaluable accepts two values to compare, a and b. An optional delta parameter can be passed to compare numbers approximately.
// true is(null, null); // false is(null, undefined); // false is(null, ''); // returns false // true is(+0, -0); // true is(0.1 + 0.2, 0.3); // true is(NaN, NaN); // true is('abc', 'abc'); // true is('\u00F1', '\u006E\u0303'); // true is(new Date(0), new Date(0)); // true is(new Number(1), new Number(1));
3. You can also create custom classes with the equals
method.
class Custom { constructor(value) { this.value = value; } equals(other) { return ( this === other || (other instanceof Custom && this.value === other.value) ); } } // true is(new Custom(0), new Custom(0)); // false is(new Custom(0), new Custom(1));