A light weight package for object and array manipulation. As well as some utilities for matching text.
npm install @ukon1990/js-utilitiesTo install: npm i @ukon1990/js-utilities --save
Build & Test status: 
isObject(value) - Checks if a value is an object and not arrayisPopulatedObject(value) - Returns true if an object is populatedoverwrite(fromObject, toObject, doNotMutate = false) - Replaces all the values of one objects with another objectclone(object) - Returns a cloned version of an object. Removing all child object references.isEqual(object1, object2) - Checks if two objects are equal regardless of object reference.getDifference(object1, object2) - Returns an array of object differences as Difference objects.merge(object1, object2 - Merges/Combines two objects into one, keeping all theisArray(value) - Checks if a value is an object and not arrayisPopulatedArray(value) - Returns true if an array is populatedclone(array) - Returns a cloned version of an array. Removing all child object references.isEqual(array1, array2) - Checks if two arrays are equal regardless of object reference.getDifference(array1, array2) - Returns an array of differences as Difference objects.removeObject(value, fromArray, immutable = false) - Removes all entries that is identical to a value from an array, regardless of the object reference. If , immutable = true, it will return a copy instead of mutating the input array.removeObjects(values, fromArray) - Removes multiple objects/values from an array.removeIndexes(indexes, fromArray) - Removes the elements from an array at the supplied index locationsremoveDuplicates(fromArray, immutable = false) - Remove all duplicate entries in an array. If , immutable = true, it will return a copy instead of mutating the input array.randomOrder(fromArray) - Returns a new array with the items in the fromArray in random order.isEmpty(string) - Checks if a string is null, undefined or has a length of 0.isEqualIgnoreCase(string, string - Checks if two strings are equal (case insensitive).getMatchingParts(string, stringToFind) - getMatchingParts('Chicken', 'ck') {start: 'Chi', match: 'ck', end: 'en'}.getIndexOf(sourceString, targetString) - Is basically sourceString.toLowerCase().indexOf(targetString.toLowerCase)contains(sourceString, targetString) - Checks if a string exists within another. This is case-insensitive.isLowerCase(string) - Checks if a string is upper or lowercase.sentenceToCamelCase(sentence, upperCase?) - Converts a sentence into lower camel case.camelCaseToSentence(sentence) - Converts a sentence of camelCase words into a sentence with spaces.csvToObjects(input, delimiter?, options?: {headerNames?: string[], types?: string[]}) - objectsToCSV(list, delimiter?: string = ',', useKeys?: string[]) - Converts a list of objects to a CSV string. If provided with the isNullOrUndefined(value, value?) - Checks if all the input is null or undefined.isAPopulatedArrayOrObject(value) - Checks if a value is a populated array or objectgetDifferenceInMS(fromDate, toDate) - Returns the difference between two dates in millisecondsgetDifferenceInSeconds(fromDate, toDate) - Returns the difference between two dates in secondsgetDifferenceInMinutes(fromDate, toDate) - Returns the difference between two dates in minutesgetDifferenceInHours(fromDate, toDate) - Returns the difference between two dates in hoursgetDifferenceInDays(fromDate, toDate) - Returns the difference between two dates in daysgetDifferenceInWeeks(fromDate, toDate) - Returns the difference between two dates in weekstimeSince(fromDate) - Returns the time since a provided date. The second parameter can be empty(defaults to ms) or s/seconds, m/minutes, h/hours, d/days, w/weeks.