thesmo-compare-valuesdeprecated

Objects and primitives comparators collection

Usage no npm install needed!

<script type="module">
  import thesmoCompareValues from 'https://cdn.skypack.dev/thesmo-compare-values';
</script>

README

npm GitHub GitHub last commit npm

Summary

This package contains collection of useful comparators for objects, arrays and primitives.

API

API methods clarification

Arrays

Signature

/* arguments object */
({ 
    compareMembers: (firstOperand: *, secondOperand: *) => boolean,
    checkMembersOrder: boolean
})
/* returns */
(firstOperand: any[], secondOperand: any[]) => boolean

Usage example

const { Arrays, Primitives } = require("thesmo-compare-values");

const arrayOfPrimitives1 = [1, 2, 3, 4, 5];
const arrayOfPrimitives2 = [1, 2, 3, 5, 4];
const arrayOfPrimitives3 = [1, 2, 3, 4, 4];
const arrayOfPrimitives4 = [1, 2, 3, 4];

const compareArraysOfPrimitives = Arrays({ 
    compareMembers: Primitives({shouldIgnoreTypes: false}), 
    checkMembersOrder: false 
});

compareArraysOfPrimitives(arrayOfPrimitives1, arrayOfPrimitives2); // true
compareArraysOfPrimitives(arrayOfPrimitives1, arrayOfPrimitives3); // false
compareArraysOfPrimitives(arrayOfPrimitives3, arrayOfPrimitives4); // false

ObjectsByField

Signature

/* arguments object */
({ 
    fieldName: string,
    fieldValueComparer: (firtsOperand: *, secondOperand: *) => boolean
})
/* returns */
(firstOperand: object, secondOperand: object) => boolean

Usage example

const { ObjectsByField, Primitives } = require("thesmo-compare-values");

const compareByField_a = ObjectsByField({
    fieldName: "a", 
    fieldValueComparer: Primitives({shouldIgnoreTypes: false})
});

const firstObject = {a: 1, b: 2, c: 3};
const secondObject = {a: 1, b: 52, c: 5, n: 64};
const thirdObject = {a: 5, b: 4};

// true
compareByField_a(firstObject, secondObject);

// false
compareByField_a(firstObject, thirdObject);

ObjectsByJointRootPrimitives

Signature

/* arguments object */
({ 
    checkFieldsList: boolean
})
/* returns */
(firstOperand: object, secondOperand: object) => boolean

Usage example

const { ObjectsByJointRootPrimitives } = require("thesmo-compare-values");

const obj1 = { a: 1, b: 2 };
const obj2 = { a: 1, b: 2 };
const obj3 = { a: 1 };

// true
const obj1_obj2 = ObjectsByJointRootPrimitives({checkFieldsList: true})(obj1, obj2);

// false
const obj1_obj3_checkFieldsList = ObjectsByJointRootPrimitives({checkFieldsList: true})(obj1, obj3);

// true
const obj2_obj3_dontCheckFieldsList = ObjectsByJointRootPrimitives({checkFieldsList: false})(obj1, obj3);

Primitives

Signature

/* arguments object */
({ 
    shouldIgnoreTypes: boolean
})
/* returns */
(firstOperand: *, secondOperand: *) => boolean

Usage example

const { Primitives } = require("thesmo-compare-values");

const one = 1;
const anotherOne = 1;
const oneAsString = "1";

// true
const one_one = Primitives({
    shouldIgnoreTypes: false
})(one, one);

// true
const one_anotherOne = Primitives({
    shouldIgnoreTypes: false
})(one, anotherOne);

// false
const one_oneAsString = Primitives({
    shouldIgnoreTypes: false
})(one, oneAsString);

// true
const one_oneAsString_ignoreTypes = Primitives({
    shouldIgnoreTypes: true
})(one, oneAsString);