2022-12-22 17:02:34 +01:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
2022-11-15 09:35:48 +01:00
|
|
|
export const getDeepKeys = (obj: any): string[] => {
|
|
|
|
|
let keys: string[] = []
|
|
|
|
|
for (const key in obj) {
|
|
|
|
|
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
|
|
|
|
|
const subkeys = getDeepKeys(obj[key])
|
|
|
|
|
keys = keys.concat(
|
|
|
|
|
subkeys.map(function (subkey) {
|
|
|
|
|
return key + '.' + subkey
|
|
|
|
|
})
|
|
|
|
|
)
|
|
|
|
|
} else if (Array.isArray(obj[key])) {
|
|
|
|
|
for (let i = 0; i < obj[key].length; i++) {
|
|
|
|
|
const subkeys = getDeepKeys(obj[key][i])
|
|
|
|
|
keys = keys.concat(
|
|
|
|
|
subkeys.map(function (subkey) {
|
|
|
|
|
return key + '[' + i + ']' + '.' + subkey
|
|
|
|
|
})
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
keys.push(key)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return keys
|
|
|
|
|
}
|