Skip to content

Commit d048b65

Browse files
feat(utils): added omitKeys to flattenObject function
1 parent 49cf099 commit d048b65

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

.changeset/tender-camels-begin.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@yamada-ui/utils': patch
3+
---
4+
5+
Added `omitKeys` parameter to `flattenObject` function.

packages/utils/src/object.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,16 @@ export const merge = <T extends Dict>(
9999
export const flattenObject = <T extends Dict>(
100100
obj: any,
101101
maxDepth: number = Infinity,
102+
omitKeys: string[] = [],
102103
): T => {
103104
if ((!isObject(obj) && !isArray(obj)) || !maxDepth) return obj
104105

105106
return Object.entries(obj).reduce((result, [key, value]) => {
106-
if (isObject(value)) {
107-
Object.entries(flattenObject(value, maxDepth - 1)).forEach(
107+
if (
108+
isObject(value) &&
109+
!Object.keys(value).some((key) => omitKeys.includes(key))
110+
) {
111+
Object.entries(flattenObject(value, maxDepth - 1, omitKeys)).forEach(
108112
([childKey, childValue]) => {
109113
result[`${key}.${childKey}`] = childValue
110114
},

0 commit comments

Comments
 (0)