README
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);