New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

object-array-utils

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-array-utils - npm Package Compare versions

Comparing version
3.2.0
to
3.3.0
+2
-1
dist/index.d.ts

@@ -47,2 +47,3 @@ export declare type ObjectLiteral<T = unknown> = Record<string, T>;

declare function isPrimitive(value: unknown): boolean;
declare function cloneShape<T = unknown>(value: T): T;
declare function deepFreeze(o: unknown[] | ObjectInstance | ObjectLiteral): Readonly<ObjectInstance<unknown> | ObjectLiteral<unknown> | unknown[]>;

@@ -74,2 +75,2 @@ declare function sortProperties(o: ObjectLiteral): {

declare function unique<T>(a: T[], fun?: (val: T) => unknown): T[];
export { areArraysEqual, areObjectsEqual, areValuesEqual, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperty, hasProperties, isArray, isArrayOfObjects, isArrayOfObjectLiterals, isArrayOfPrimitives, isArrayOfType, isArraySubset, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isNullOrUndefined, isObject, isObjectInstance, isObjectLiteral, isObjectLiteralWhereEvery, isObjectSubset, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique };
export { areArraysEqual, areObjectsEqual, areValuesEqual, cloneShape, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperty, hasProperties, isArray, isArrayOfObjects, isArrayOfObjectLiterals, isArrayOfPrimitives, isArrayOfType, isArraySubset, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isNullOrUndefined, isObject, isObjectInstance, isObjectLiteral, isObjectLiteralWhereEvery, isObjectSubset, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique };

@@ -382,2 +382,17 @@ function isNullOrUndefined(v) {

}
function cloneShape(value) {
if (isObjectLiteral(value)) {
return cloneShapeOfObjectLiteral(value);
}
if (isArray(value)) {
return cloneShapeOfArray(value);
}
return value;
}
function cloneShapeOfObjectLiteral(o) {
return Object.fromEntries(Object.entries(o).map(([key, val]) => [key, cloneShape(val)]));
}
function cloneShapeOfArray(a) {
return a.map((e) => cloneShape(e));
}
function deepFreeze(o) {

@@ -435,2 +450,2 @@ if (!isObject(o) && !isArray(o)) {

}
export { areArraysEqual, areObjectsEqual, areValuesEqual, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperty, hasProperties, isArray, isArrayOfObjects, isArrayOfObjectLiterals, isArrayOfPrimitives, isArrayOfType, isArraySubset, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isNullOrUndefined, isObject, isObjectInstance, isObjectLiteral, isObjectLiteralWhereEvery, isObjectSubset, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique };
export { areArraysEqual, areObjectsEqual, areValuesEqual, cloneShape, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperty, hasProperties, isArray, isArrayOfObjects, isArrayOfObjectLiterals, isArrayOfPrimitives, isArrayOfType, isArraySubset, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isNullOrUndefined, isObject, isObjectInstance, isObjectLiteral, isObjectLiteralWhereEvery, isObjectSubset, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique };
import { expect, test } from 'vitest';
import { areArraysEqual, areObjectsEqual, areValuesEqual, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperties, isArrayOfPrimitives, isArrayOfType, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isObjectLiteral, isObjectLiteralWhereEvery, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique } from './index';
import { areArraysEqual, areObjectsEqual, areValuesEqual, cloneShape, deepFreeze, differenceArraysOfPrimitives, duplicate, filterProperties, hasProperties, isArrayOfPrimitives, isArrayOfType, isArrayWhereEvery, isEmptyArray, isEmptyObjectLiteral, isObjectLiteral, isObjectLiteralWhereEvery, isPrimitive, range, rejectProperties, removeArrayElement, removeArrayElementByIndex, removeArrayElements, sortProperties, takeProperties, unique } from './index';
test('areValuesEqual', () => {

@@ -181,1 +181,17 @@ expect(areValuesEqual(null, null)).toBeTruthy();

});
test('cloneShape', () => {
expect(cloneShape(null)).toEqual(null);
expect(cloneShape('foo')).toEqual('foo');
const o = [1, { b: null, c: { d: [2, 5, 1, 0, { c: 3, d: 4 }], e: "world" }, a: "foo" }];
const clonedO = cloneShape(o);
expect(o[1].b).toBe(null);
expect(clonedO[1].b).toBe(null);
expect(o[1].a).toBe('foo');
expect(clonedO[1].a).toBe('foo');
expect(o[1].c).toEqual({ d: [2, 5, 1, 0, { c: 3, d: 4 }], e: "world" });
expect(clonedO[1].c).toEqual({ d: [2, 5, 1, 0, { c: 3, d: 4 }], e: "world" });
expect(o === clonedO).toBeFalsy();
expect(o[1] === clonedO[1]).toBeFalsy();
expect(o[1].c === clonedO[1].c).toBeFalsy();
expect(o[1].c.d === clonedO[1].c.d).toBeFalsy();
});
{
"name": "object-array-utils",
"version": "3.2.0",
"version": "3.3.0",
"description": "Utilities for working with arrays and objects",

@@ -5,0 +5,0 @@ "funding": "https://github.com/mathieuprog/object-array-utils?sponsor=1",