Comparing version 1.0.0 to 1.1.0
@@ -0,1 +1,8 @@ | ||
export function camelize<T extends Record<string, any>>( | ||
source: T, | ||
depth?: boolean | number | ||
): SnakeCaseKeys<T>; | ||
export function camelize_str(source: string): string; | ||
export function clone<T>(target: T): T; | ||
@@ -72,5 +79,5 @@ export function compare(el1: unknown, el2: unknown): boolean; | ||
source: T, | ||
convert?: boolean | number | ||
depth?: boolean | number | ||
): SnakeCaseKeys<T>; | ||
export function snake_case_str(source: string): string; |
@@ -11,2 +11,25 @@ function _typeof(o) { | ||
function camelize(source) { | ||
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var target = {}; | ||
if (is_object_literal(source)) { | ||
var d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (var _i = 0, _Object$keys = Object.keys(source); _i < _Object$keys.length; _i++) { | ||
var key = _Object$keys[_i]; | ||
var value = source[key]; | ||
if (depth) { | ||
key = camelize_str(key); | ||
} | ||
target[key] = camelize(value, d); | ||
} | ||
} else { | ||
target = source; | ||
} | ||
return target; | ||
} | ||
function camelize_str(str) { | ||
return str.replace(/[_.-](\w|$)/g, function (_, x) { | ||
return x.toUpperCase(); | ||
}); | ||
} | ||
function compare(el1, el2) { | ||
@@ -38,4 +61,4 @@ if (is_object_literal(el1)) { | ||
} | ||
for (var _i = 0; _i < el1.length; _i++) { | ||
if (!compare(el1[_i], el2[_i])) { | ||
for (var _i2 = 0; _i2 < el1.length; _i2++) { | ||
if (!compare(el1[_i2], el2[_i2])) { | ||
return false; | ||
@@ -87,4 +110,4 @@ } | ||
} | ||
for (var _i2 = 0, _Object$keys = Object.keys(source); _i2 < _Object$keys.length; _i2++) { | ||
var name = _Object$keys[_i2]; | ||
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) { | ||
var name = _Object$keys2[_i3]; | ||
if (/__proto__|prototype/.test(name)) { | ||
@@ -112,13 +135,13 @@ // See | ||
function snake_case(source) { | ||
var convert = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var target = {}; | ||
if (is_object_literal(source)) { | ||
var u = typeof convert === "number" && convert > 0 ? convert - 1 : convert; | ||
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) { | ||
var name = _Object$keys2[_i3]; | ||
var src = source[name]; | ||
if (convert) { | ||
name = snake_case_str(name); | ||
var d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (var _i4 = 0, _Object$keys3 = Object.keys(source); _i4 < _Object$keys3.length; _i4++) { | ||
var key = _Object$keys3[_i4]; | ||
var value = source[key]; | ||
if (depth) { | ||
key = snake_case_str(key); | ||
} | ||
target[name] = snake_case(src, u); | ||
target[key] = snake_case(value, d); | ||
} | ||
@@ -134,2 +157,2 @@ } else { | ||
export { clone, compare, is_object, is_object_literal, merge, mutate, snake_case, snake_case_str }; | ||
export { camelize, camelize_str, clone, compare, is_object, is_object_literal, merge, mutate, snake_case, snake_case_str }; |
@@ -17,2 +17,25 @@ (function (global, factory) { | ||
function camelize(source) { | ||
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var target = {}; | ||
if (is_object_literal(source)) { | ||
var d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (var _i = 0, _Object$keys = Object.keys(source); _i < _Object$keys.length; _i++) { | ||
var key = _Object$keys[_i]; | ||
var value = source[key]; | ||
if (depth) { | ||
key = camelize_str(key); | ||
} | ||
target[key] = camelize(value, d); | ||
} | ||
} else { | ||
target = source; | ||
} | ||
return target; | ||
} | ||
function camelize_str(str) { | ||
return str.replace(/[_.-](\w|$)/g, function (_, x) { | ||
return x.toUpperCase(); | ||
}); | ||
} | ||
function compare(el1, el2) { | ||
@@ -44,4 +67,4 @@ if (is_object_literal(el1)) { | ||
} | ||
for (var _i = 0; _i < el1.length; _i++) { | ||
if (!compare(el1[_i], el2[_i])) { | ||
for (var _i2 = 0; _i2 < el1.length; _i2++) { | ||
if (!compare(el1[_i2], el2[_i2])) { | ||
return false; | ||
@@ -93,4 +116,4 @@ } | ||
} | ||
for (var _i2 = 0, _Object$keys = Object.keys(source); _i2 < _Object$keys.length; _i2++) { | ||
var name = _Object$keys[_i2]; | ||
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) { | ||
var name = _Object$keys2[_i3]; | ||
if (/__proto__|prototype/.test(name)) { | ||
@@ -118,13 +141,13 @@ // See | ||
function snake_case(source) { | ||
var convert = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var target = {}; | ||
if (is_object_literal(source)) { | ||
var u = typeof convert === "number" && convert > 0 ? convert - 1 : convert; | ||
for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) { | ||
var name = _Object$keys2[_i3]; | ||
var src = source[name]; | ||
if (convert) { | ||
name = snake_case_str(name); | ||
var d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (var _i4 = 0, _Object$keys3 = Object.keys(source); _i4 < _Object$keys3.length; _i4++) { | ||
var key = _Object$keys3[_i4]; | ||
var value = source[key]; | ||
if (depth) { | ||
key = snake_case_str(key); | ||
} | ||
target[name] = snake_case(src, u); | ||
target[key] = snake_case(value, d); | ||
} | ||
@@ -140,2 +163,4 @@ } else { | ||
exports.camelize = camelize; | ||
exports.camelize_str = camelize_str; | ||
exports.clone = clone; | ||
@@ -142,0 +167,0 @@ exports.compare = compare; |
@@ -0,1 +1,8 @@ | ||
export function camelize<T extends Record<string, any>>( | ||
source: T, | ||
depth?: boolean | number | ||
): SnakeCaseKeys<T>; | ||
export function camelize_str(source: string): string; | ||
export function clone<T>(target: T): T; | ||
@@ -72,5 +79,5 @@ export function compare(el1: unknown, el2: unknown): boolean; | ||
source: T, | ||
convert?: boolean | number | ||
depth?: boolean | number | ||
): SnakeCaseKeys<T>; | ||
export function snake_case_str(source: string): string; |
@@ -0,1 +1,22 @@ | ||
export function camelize(source, depth = true) { | ||
let target = {}; | ||
if (is_object_literal(source)) { | ||
const d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (let key of Object.keys(source)) { | ||
const value = source[key]; | ||
if (depth) { | ||
key = camelize_str(key); | ||
} | ||
target[key] = camelize(value, d); | ||
} | ||
} else { | ||
target = source; | ||
} | ||
return target; | ||
} | ||
export function camelize_str(str) { | ||
return str.replace(/[_.-](\w|$)/g, (_, x) => x.toUpperCase()); | ||
} | ||
export function compare(el1, el2) { | ||
@@ -102,13 +123,12 @@ if (is_object_literal(el1)) { | ||
export function snake_case(source, convert = true) { | ||
export function snake_case(source, depth = true) { | ||
let target = {}; | ||
if (is_object_literal(source)) { | ||
const u = | ||
typeof convert === "number" && convert > 0 ? convert - 1 : convert; | ||
for (let name of Object.keys(source)) { | ||
let src = source[name]; | ||
if (convert) { | ||
name = snake_case_str(name); | ||
const d = typeof depth === "number" && depth > 0 ? depth - 1 : depth; | ||
for (let key of Object.keys(source)) { | ||
let value = source[key]; | ||
if (depth) { | ||
key = snake_case_str(key); | ||
} | ||
target[name] = snake_case(src, u); | ||
target[key] = snake_case(value, d); | ||
} | ||
@@ -115,0 +135,0 @@ } else { |
{ | ||
"name": "mixme", | ||
"description": "A library for recursively merging JavaScript objects", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"author": "David Worms <david@adaltas.com> (https://www.adaltas.com)", | ||
@@ -6,0 +6,0 @@ "contributors": [ |
@@ -17,2 +17,24 @@ | ||
### Function `camelize(object)` | ||
Clone a object and convert its properties into snake case. | ||
```js | ||
import { snake_case } from "mixme" | ||
snake_case({aA: "1", bB: cC: "2"}) | ||
// Return {a_a: "1", b_b: c_c: "2"} | ||
``` | ||
### Function `camelize_str(str)` | ||
Convert a camel case string to snake case, used internally by `snake_case`. | ||
```js | ||
import { snake_case_str } from "mixme" | ||
snake_case("myValue") | ||
// Return "my_value" | ||
``` | ||
### Function `compare(item_1, item_2)` | ||
@@ -19,0 +41,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
33197
753
186