object-comparator

1.1.0 • Public • Published

Object Comparator

This package provides functions for comparing objects.

Installation

# use npm 
$ npm install --save object-comparator
# use yarn 
$ yarn add object-comparator

Usage

import { compareObject } from 'object-comparator'
 
const obj1 = { name: 'foo', value: 1 }
const obj2 = { name: 'bar', value: 2 }
const obj3 = { name: 'bar', value: 2 }
 
const result1 = compareObject(obj1, obj2)
console.log(result1.equal) // false
 
const result2 = compareObject(obj2, obj3)
console.log(result2.equal) // true

API

Commonly, the comparison functions have a Result type return value defined as follows.

type Equal = { 
  equal: true
}
 
type NotEqual = {
  equal: false
}
 
type Result = Equal | NotEqual

typeOf: (obj: any) => ObjectType

Classify the value of the argument into one of the following

  • ObjectType.Array
  • ObjectType.Bigint
  • ObjectType.Boolean
  • ObjectType.Class
  • ObjectType.Function
  • ObjectType.Number
  • ObjectType.ull
  • ObjectType.Object
  • ObjectType.String
  • ObjectType.Symbol
  • ObjectType.Undefined

compareFunction: (fun1: Function, fun2: Function, option?: CompareOption) => Result

Compare the values of ObjectType.Function. If an optional comparison operator is given(option.functionTypeComparator), use it to compare, otherwise use fun.name to compare.

compareClass: (cls1: Object, cls2: Object, option?: CompareOption) => Result

Comparing values that are ObjectType. If an optional comparison operator is given(option.classTypeComparator), use it to compare, otherwise use fun.constructor.name to compare.

compareArray: (arr1: any[], arr2: any[], option?: CompareOption) => Result

Compare values in an ObjectType.Array. The array is sorted and compared. Each element of the array is further compared according to the result of the typeOf function.

compareObject: (obj1: any, obj2: any, option?: CompareOption) => Result

Takes an argument of any type, and if it is ObjectType.Object, it checks if the key/value pair is an exact match.

CompareOption

type CompareOption = Partial<{
  
  // If the option is not passed, 
  // the comparison is performed as implemented by the compareClass function.
  classTypeComparator: (cls1: Object, cls2: Object) => Result;
 
  // If the option is not passed, 
  // the comparison is performed as implemented by the compareFunction function.
  functionTypeComparator: (fun1: Function, fun2: Function, option?: CompareOption) => Result;
}>

Readme

Keywords

none

Package Sidebar

Install

npm i object-comparator

Weekly Downloads

1

Version

1.1.0

License

MIT

Unpacked Size

9.24 kB

Total Files

5

Last publish

Collaborators

  • mosmos_21