Socket
Socket
Sign inDemoInstall

mixme

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mixme - npm Package Compare versions

Comparing version 0.5.10 to 1.0.0

15

dist/esm/index.d.ts

@@ -0,5 +1,6 @@

export function clone<T>(target: T): T;
export function compare(el1: unknown, el2: unknown): boolean;
export function is_object(obj: unknown): boolean;
export function is_object_literal(obj: unknown): boolean;
export function compare(el1: unknown, el2: unknown): boolean;
export function clone<T>(target: T): T;

@@ -44,4 +45,4 @@ type Merge<T extends object[]> = T extends [

: U[K] extends object
? MergeObjects<T[K], U[K]>
: T[K]
? MergeObjects<T[K], U[K]>
: T[K]
: U[K]

@@ -58,6 +59,2 @@ : K extends keyof T

export function snake_case_str(
source: string,
): string;
type SnakeCase<S extends string> = S extends `${infer T}${infer U}`

@@ -79,1 +76,3 @@ ? `${T extends Uppercase<T> ? "_" : ""}${Lowercase<T>}${SnakeCase<U>}`

): SnakeCaseKeys<T>;
export function snake_case_str(source: string): string;

@@ -11,4 +11,37 @@ function _typeof(o) {

function merge() {
return mutate.apply(void 0, [{}].concat(Array.prototype.slice.call(arguments)));
function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
var keys1 = Object.keys(el1).sort();
var keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (var i = 0; i < keys1.length; i++) {
var key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (var _i = 0; _i < el1.length; _i++) {
if (!compare(el1[_i], el2[_i])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}

@@ -26,2 +59,21 @@ function clone(target) {

}
function is_object(obj) {
return obj && _typeof(obj) === "object" && !Array.isArray(obj);
}
function is_object_literal(obj) {
var test = obj;
if (_typeof(obj) !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (Object.getPrototypeOf(test = Object.getPrototypeOf(test)) !== null) {
}
return Object.getPrototypeOf(obj) === test;
}
}
function merge() {
return mutate.apply(void 0, [{}].concat(Array.prototype.slice.call(arguments)));
}
function mutate() {

@@ -35,4 +87,4 @@ var target = arguments[0];

}
for (var _i = 0, _Object$keys = Object.keys(source); _i < _Object$keys.length; _i++) {
var name = _Object$keys[_i];
for (var _i2 = 0, _Object$keys = Object.keys(source); _i2 < _Object$keys.length; _i2++) {
var name = _Object$keys[_i2];
if (/__proto__|prototype/.test(name)) {

@@ -64,4 +116,4 @@ // See

var u = typeof convert === "number" && convert > 0 ? convert - 1 : convert;
for (var _i2 = 0, _Object$keys2 = Object.keys(source); _i2 < _Object$keys2.length; _i2++) {
var name = _Object$keys2[_i2];
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) {
var name = _Object$keys2[_i3];
var src = source[name];

@@ -78,58 +130,6 @@ if (convert) {

}
function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
var keys1 = Object.keys(el1).sort();
var keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (var i = 0; i < keys1.length; i++) {
var key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (var _i3 = 0; _i3 < el1.length; _i3++) {
if (!compare(el1[_i3], el2[_i3])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}
function snake_case_str(str) {
return str.replace(/([a-z\d])([A-Z]+)/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
}
function is_object(obj) {
return obj && _typeof(obj) === "object" && !Array.isArray(obj);
}
function is_object_literal(obj) {
var test = obj;
if (_typeof(obj) !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (Object.getPrototypeOf(test = Object.getPrototypeOf(test)) !== null) {
}
return Object.getPrototypeOf(obj) === test;
}
}
export { clone, compare, is_object, is_object_literal, merge, mutate, snake_case, snake_case_str };

@@ -17,4 +17,37 @@ (function (global, factory) {

function merge() {
return mutate.apply(void 0, [{}].concat(Array.prototype.slice.call(arguments)));
function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
var keys1 = Object.keys(el1).sort();
var keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (var i = 0; i < keys1.length; i++) {
var key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (var _i = 0; _i < el1.length; _i++) {
if (!compare(el1[_i], el2[_i])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}

@@ -32,2 +65,21 @@ function clone(target) {

}
function is_object(obj) {
return obj && _typeof(obj) === "object" && !Array.isArray(obj);
}
function is_object_literal(obj) {
var test = obj;
if (_typeof(obj) !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (Object.getPrototypeOf(test = Object.getPrototypeOf(test)) !== null) {
}
return Object.getPrototypeOf(obj) === test;
}
}
function merge() {
return mutate.apply(void 0, [{}].concat(Array.prototype.slice.call(arguments)));
}
function mutate() {

@@ -41,4 +93,4 @@ var target = arguments[0];

}
for (var _i = 0, _Object$keys = Object.keys(source); _i < _Object$keys.length; _i++) {
var name = _Object$keys[_i];
for (var _i2 = 0, _Object$keys = Object.keys(source); _i2 < _Object$keys.length; _i2++) {
var name = _Object$keys[_i2];
if (/__proto__|prototype/.test(name)) {

@@ -70,4 +122,4 @@ // See

var u = typeof convert === "number" && convert > 0 ? convert - 1 : convert;
for (var _i2 = 0, _Object$keys2 = Object.keys(source); _i2 < _Object$keys2.length; _i2++) {
var name = _Object$keys2[_i2];
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) {
var name = _Object$keys2[_i3];
var src = source[name];

@@ -84,57 +136,5 @@ if (convert) {

}
function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
var keys1 = Object.keys(el1).sort();
var keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (var i = 0; i < keys1.length; i++) {
var key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (var _i3 = 0; _i3 < el1.length; _i3++) {
if (!compare(el1[_i3], el2[_i3])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}
function snake_case_str(str) {
return str.replace(/([a-z\d])([A-Z]+)/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
}
function is_object(obj) {
return obj && _typeof(obj) === "object" && !Array.isArray(obj);
}
function is_object_literal(obj) {
var test = obj;
if (_typeof(obj) !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (Object.getPrototypeOf(test = Object.getPrototypeOf(test)) !== null) {
}
return Object.getPrototypeOf(obj) === test;
}
}

@@ -141,0 +141,0 @@ exports.clone = clone;

@@ -0,5 +1,6 @@

export function clone<T>(target: T): T;
export function compare(el1: unknown, el2: unknown): boolean;
export function is_object(obj: unknown): boolean;
export function is_object_literal(obj: unknown): boolean;
export function compare(el1: unknown, el2: unknown): boolean;
export function clone<T>(target: T): T;

@@ -44,4 +45,4 @@ type Merge<T extends object[]> = T extends [

: U[K] extends object
? MergeObjects<T[K], U[K]>
: T[K]
? MergeObjects<T[K], U[K]>
: T[K]
: U[K]

@@ -58,6 +59,2 @@ : K extends keyof T

export function snake_case_str(
source: string,
): string;
type SnakeCase<S extends string> = S extends `${infer T}${infer U}`

@@ -79,1 +76,3 @@ ? `${T extends Uppercase<T> ? "_" : ""}${Lowercase<T>}${SnakeCase<U>}`

): SnakeCaseKeys<T>;
export function snake_case_str(source: string): string;

@@ -1,3 +0,36 @@

export function merge() {
return mutate({}, ...arguments);
export function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
const keys1 = Object.keys(el1).sort();
const keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (let i = 0; i < keys1.length; i++) {
const key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (let i = 0; i < el1.length; i++) {
if (!compare(el1[i], el2[i])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}

@@ -15,2 +48,27 @@

export function is_object(obj) {
return obj && typeof obj === "object" && !Array.isArray(obj);
}
export function is_object_literal(obj) {
let test = obj;
if (typeof obj !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (
Object.getPrototypeOf((test = Object.getPrototypeOf(test))) !== null
) {
true;
}
return Object.getPrototypeOf(obj) === test;
}
}
export function merge() {
return mutate({}, ...arguments);
}
export function mutate() {

@@ -63,39 +121,2 @@ let target = arguments[0];

export function compare(el1, el2) {
if (is_object_literal(el1)) {
if (!is_object_literal(el2)) {
return false;
}
const keys1 = Object.keys(el1).sort();
const keys2 = Object.keys(el2).sort();
if (keys1.length !== keys2.length) {
return false;
}
for (let i = 0; i < keys1.length; i++) {
const key = keys1[i];
if (key !== keys2[i]) {
return false;
}
if (!compare(el1[key], el2[key])) {
return false;
}
}
} else if (Array.isArray(el1)) {
if (!Array.isArray(el2)) {
return false;
}
if (el1.length !== el2.length) {
return false;
}
for (let i = 0; i < el1.length; i++) {
if (!compare(el1[i], el2[i])) {
return false;
}
}
} else if (el1 !== el2) {
return false;
}
return true;
}
export function snake_case_str(str) {

@@ -107,22 +128,1 @@ return str

}
export function is_object(obj) {
return obj && typeof obj === "object" && !Array.isArray(obj);
}
export function is_object_literal(obj) {
let test = obj;
if (typeof obj !== "object" || obj === null) {
return false;
} else {
if (Object.getPrototypeOf(test) === null) {
return true;
}
while (
Object.getPrototypeOf((test = Object.getPrototypeOf(test))) !== null
) {
true;
}
return Object.getPrototypeOf(obj) === test;
}
}
{
"name": "mixme",
"description": "A library for recursively merging JavaScript objects",
"version": "0.5.10",
"version": "1.0.0",
"author": "David Worms <david@adaltas.com> (https://www.adaltas.com)",

@@ -6,0 +6,0 @@ "contributors": [

@@ -15,24 +15,16 @@

### Function `merge(...data)`
The API is minimalist. The most popular functions are `merge`, `mutate` and `is_object_literal`.
The API is minimalist, pass as many literal objects as you wish, they will all be merged. This function is immutable, the source objects won't be altered.
### Function `compare(item_1, item_2)`
Compare two items and return true if their values match.
```js
import { merge } from "mixme"
import { compare } from "mixme"
const target = merge({a: "1"}, {b: "2"});
// target is {a: "1", b: "2"}
```
compare([{a: 1}], [{a: 1}])
// Return true
### Function `mutate(...data)`
Use the `mutate` function to enrich an object. The first argument will be mutated:
```js
import { mutate } from "mixme"
const source = {a: "1"};
const target = mutate(source, {b: "2"});
target.c = "3";
// source and target are both {a: "1", b: "2", c: "3"}
compare({a: 1}, {a: 2})
// Return false
```

@@ -68,13 +60,27 @@

### Function `snake_case_str(str)`
### Function `merge(...data)`
Convert a camel case string to snake case, used internally by `snake_case`.
The API is minimalist,
Merge all literal object provided as arguments. This function is immutable, the source objects won't be altered.
```js
import { snake_case_str } from "mixme"
import { merge } from "mixme"
snake_case("myValue")
// Return "my_value"
const target = merge({a: "1"}, {b: "2"});
// target is {a: "1", b: "2"}
```
### Function `mutate(...data)`
Use the `mutate` function to enrich an object. The first argument will be mutated:
```js
import { mutate } from "mixme"
const source = {a: "1"};
const target = mutate(source, {b: "2"});
target.c = "3";
// source and target are both {a: "1", b: "2", c: "3"}
```
### Function `snake_case(object)`

@@ -91,14 +97,11 @@

### Function `compare(item_1, item_2)`
### Function `snake_case_str(str)`
Compare two items and return true if their values match.
Convert a camel case string to snake case, used internally by `snake_case`.
```js
import { compare } from "mixme"
import { snake_case_str } from "mixme"
compare([{a: 1}], [{a: 1}])
// Return true
compare({a: 1}, {a: 2})
// Return false
snake_case("myValue")
// Return "my_value"
```

@@ -105,0 +108,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc