es-toolkit 1.31.0-dev.996 → 1.31.0-dev.997
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunk/{toMerged-DGFrN7.js → toMerged-NG176l.js} +6 -6
- package/dist/browser.global.js +1 -1
- package/dist/browser.global.js.map +1 -1
- package/dist/compat/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/object/flattenObject.d.mts +10 -2
- package/dist/object/flattenObject.d.ts +10 -2
- package/dist/object/flattenObject.mjs +6 -6
- package/dist/object/index.js +1 -1
- package/package.json +1 -1
package/dist/compat/index.js
CHANGED
|
@@ -9,7 +9,7 @@ const unary = require('../_chunk/unary-c1NFA5.js');
|
|
|
9
9
|
const noop = require('../_chunk/noop-2IwLUk.js');
|
|
10
10
|
const range$1 = require('../_chunk/range-HnEIT7.js');
|
|
11
11
|
const randomInt = require('../_chunk/randomInt-CF7bZK.js');
|
|
12
|
-
const toMerged = require('../_chunk/toMerged-
|
|
12
|
+
const toMerged = require('../_chunk/toMerged-NG176l.js');
|
|
13
13
|
const isPlainObject$1 = require('../_chunk/isPlainObject-octpoD.js');
|
|
14
14
|
const isWeakSet$1 = require('../_chunk/isWeakSet-BgjERb.js');
|
|
15
15
|
const promise_index = require('../promise/index.js');
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ const noop = require('./_chunk/noop-2IwLUk.js');
|
|
|
12
12
|
const range = require('./_chunk/range-HnEIT7.js');
|
|
13
13
|
const randomInt = require('./_chunk/randomInt-CF7bZK.js');
|
|
14
14
|
const math_index = require('./math/index.js');
|
|
15
|
-
const toMerged = require('./_chunk/toMerged-
|
|
15
|
+
const toMerged = require('./_chunk/toMerged-NG176l.js');
|
|
16
16
|
const object_index = require('./object/index.js');
|
|
17
17
|
const isWeakSet = require('./_chunk/isWeakSet-BgjERb.js');
|
|
18
18
|
const predicate_index = require('./predicate/index.js');
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
interface FlattenObjectOptions {
|
|
2
|
+
/**
|
|
3
|
+
* The delimiter to use between nested keys.
|
|
4
|
+
* @default '.''
|
|
5
|
+
*/
|
|
6
|
+
delimiter?: string;
|
|
7
|
+
}
|
|
1
8
|
/**
|
|
2
|
-
* Flattens a nested object into a single level object with
|
|
9
|
+
* Flattens a nested object into a single level object with delimiter-separated keys.
|
|
3
10
|
*
|
|
4
11
|
* @param {object} object - The object to flatten.
|
|
12
|
+
* @param {string} [options.delimiter='.'] - The delimiter to use between nested keys.
|
|
5
13
|
* @returns {Record<string, any>} - The flattened object.
|
|
6
14
|
*
|
|
7
15
|
* @example
|
|
@@ -23,6 +31,6 @@
|
|
|
23
31
|
* // 'd.1': 3
|
|
24
32
|
* // }
|
|
25
33
|
*/
|
|
26
|
-
declare function flattenObject(object: object): Record<string, any>;
|
|
34
|
+
declare function flattenObject(object: object, { delimiter }?: FlattenObjectOptions): Record<string, any>;
|
|
27
35
|
|
|
28
36
|
export { flattenObject };
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
interface FlattenObjectOptions {
|
|
2
|
+
/**
|
|
3
|
+
* The delimiter to use between nested keys.
|
|
4
|
+
* @default '.''
|
|
5
|
+
*/
|
|
6
|
+
delimiter?: string;
|
|
7
|
+
}
|
|
1
8
|
/**
|
|
2
|
-
* Flattens a nested object into a single level object with
|
|
9
|
+
* Flattens a nested object into a single level object with delimiter-separated keys.
|
|
3
10
|
*
|
|
4
11
|
* @param {object} object - The object to flatten.
|
|
12
|
+
* @param {string} [options.delimiter='.'] - The delimiter to use between nested keys.
|
|
5
13
|
* @returns {Record<string, any>} - The flattened object.
|
|
6
14
|
*
|
|
7
15
|
* @example
|
|
@@ -23,6 +31,6 @@
|
|
|
23
31
|
* // 'd.1': 3
|
|
24
32
|
* // }
|
|
25
33
|
*/
|
|
26
|
-
declare function flattenObject(object: object): Record<string, any>;
|
|
34
|
+
declare function flattenObject(object: object, { delimiter }?: FlattenObjectOptions): Record<string, any>;
|
|
27
35
|
|
|
28
36
|
export { flattenObject };
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { isPlainObject } from '../predicate/isPlainObject.mjs';
|
|
2
2
|
|
|
3
|
-
function flattenObject(object) {
|
|
4
|
-
return flattenObjectImpl(object);
|
|
3
|
+
function flattenObject(object, { delimiter = '.' } = {}) {
|
|
4
|
+
return flattenObjectImpl(object, '', delimiter);
|
|
5
5
|
}
|
|
6
|
-
function flattenObjectImpl(object, prefix = '') {
|
|
6
|
+
function flattenObjectImpl(object, prefix = '', delimiter = '.') {
|
|
7
7
|
const result = {};
|
|
8
8
|
const keys = Object.keys(object);
|
|
9
9
|
for (let i = 0; i < keys.length; i++) {
|
|
10
10
|
const key = keys[i];
|
|
11
11
|
const value = object[key];
|
|
12
|
-
const prefixedKey = prefix ? `${prefix}
|
|
12
|
+
const prefixedKey = prefix ? `${prefix}${delimiter}${key}` : key;
|
|
13
13
|
if (isPlainObject(value) && Object.keys(value).length > 0) {
|
|
14
|
-
Object.assign(result, flattenObjectImpl(value, prefixedKey));
|
|
14
|
+
Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
|
|
15
15
|
continue;
|
|
16
16
|
}
|
|
17
17
|
if (Array.isArray(value)) {
|
|
18
|
-
Object.assign(result, flattenObjectImpl(value, prefixedKey));
|
|
18
|
+
Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
|
|
19
19
|
continue;
|
|
20
20
|
}
|
|
21
21
|
result[prefixedKey] = value;
|
package/dist/object/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const toMerged = require('../_chunk/toMerged-
|
|
5
|
+
const toMerged = require('../_chunk/toMerged-NG176l.js');
|
|
6
6
|
|
|
7
7
|
function mergeWith(target, source, merge) {
|
|
8
8
|
const sourceKeys = Object.keys(source);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "es-toolkit",
|
|
3
3
|
"description": "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.",
|
|
4
|
-
"version": "1.31.0-dev.
|
|
4
|
+
"version": "1.31.0-dev.997+7eab0661",
|
|
5
5
|
"homepage": "https://es-toolkit.slash.page",
|
|
6
6
|
"bugs": "https://github.com/toss/es-toolkit/issues",
|
|
7
7
|
"repository": {
|