@ukon1990/js-utilities
Advanced tools
Comparing version 0.0.7 to 0.0.8
@@ -9,3 +9,3 @@ import { Difference } from "../models/difference.model"; | ||
static isEqual(object1: object, object2: object): boolean; | ||
static getDifference(object1: object | any, object2: object | any, ignoreFields?: any): Array<Difference>; | ||
static getDifference(object1: object | any, object2: object | any, ignoreFields?: any, onlyFields?: string[]): Array<Difference>; | ||
} |
@@ -62,4 +62,13 @@ "use strict"; | ||
} | ||
static getDifference(object1, object2, ignoreFields) { | ||
const differences = new Array(); | ||
static getDifference(object1, object2, ignoreFields, onlyFields) { | ||
const differences = new Array(), onlyFieldsMap = new Map(); | ||
if (array_util_1.ArrayUtil.isArray(ignoreFields)) { | ||
let fields = new Map(); | ||
ignoreFields | ||
.forEach((field) => fields.set(field, true)); | ||
ignoreFields = fields; | ||
} | ||
if (onlyFields) { | ||
onlyFields.forEach((field) => onlyFieldsMap.set(field, true)); | ||
} | ||
if (empty_util_1.EmptyUtil.isNullOrUndefined(object1) || empty_util_1.EmptyUtil.isNullOrUndefined(object2)) { | ||
@@ -73,3 +82,5 @@ differences.push(new difference_model_1.Difference('array', object1, object2)); | ||
} | ||
compare_util_1.CompareUtil.setDifferences(n, object1[n], object2[n], differences); | ||
else if (!onlyFields || onlyFields && onlyFieldsMap.get(n)) { | ||
compare_util_1.CompareUtil.setDifferences(n, object1[n], object2[n], differences); | ||
} | ||
}); | ||
@@ -76,0 +87,0 @@ } |
{ | ||
"name": "@ukon1990/js-utilities", | ||
"version": "0.0.7", | ||
"version": "0.0.8", | ||
"description": "A light weight package for object and array manipulation. As well as some utilities for matching text.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -65,4 +65,19 @@ import {EmptyUtil} from "./empty.util"; | ||
public static getDifference(object1: object | any, object2: object | any, ignoreFields?: any): Array<Difference> { | ||
const differences = new Array<Difference>(); | ||
public static getDifference(object1: object | any, object2: object | any, ignoreFields?: any, onlyFields?: string[]): Array<Difference> { | ||
const differences = new Array<Difference>(), | ||
onlyFieldsMap = new Map<string, boolean>(); | ||
if (ArrayUtil.isArray(ignoreFields)) { | ||
let fields = new Map<string, boolean>(); | ||
ignoreFields | ||
.forEach((field: string) => | ||
fields.set(field, true)); | ||
ignoreFields = fields; | ||
} | ||
if (onlyFields) { | ||
onlyFields.forEach((field: string) => | ||
onlyFieldsMap.set(field, true)); | ||
} | ||
if (EmptyUtil.isNullOrUndefined(object1) || EmptyUtil.isNullOrUndefined(object2)) { | ||
@@ -74,4 +89,5 @@ differences.push(new Difference('array', object1, object2)); | ||
return; | ||
} else if (!onlyFields || onlyFields && onlyFieldsMap.get(n)) { | ||
CompareUtil.setDifferences(n, object1[n], object2[n], differences); | ||
} | ||
CompareUtil.setDifferences(n, object1[n], object2[n], differences); | ||
}); | ||
@@ -78,0 +94,0 @@ } |
67253
663