@@ -6,21 +6,26 @@ export const getDeepKeys = (obj: any): string[] => {
|
||||
const subkeys = getDeepKeys(obj[key])
|
||||
keys = keys.concat(
|
||||
subkeys.map(function (subkey) {
|
||||
return key + '.' + subkey
|
||||
return key + parseKey(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
|
||||
})
|
||||
)
|
||||
}
|
||||
const subkeys = getDeepKeys(obj[key][0])
|
||||
keys = keys.concat(
|
||||
subkeys.map(function (subkey) {
|
||||
return `${key}.map(item => item${parseKey(subkey)})`
|
||||
})
|
||||
)
|
||||
} else {
|
||||
keys.push(key)
|
||||
}
|
||||
}
|
||||
return keys
|
||||
}
|
||||
|
||||
const parseKey = (key: string) => {
|
||||
if (key.includes(' ') && !key.includes('.map((item) => item')) {
|
||||
return `['${key}']`
|
||||
}
|
||||
return `.${key}`
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ test.describe('Builder', () => {
|
||||
await page.click('text=Save in variables')
|
||||
await page.click('text=Add an entry >> nth=-1')
|
||||
await page.click('input[placeholder="Select the data"]')
|
||||
await page.click('text=data[0].name')
|
||||
await page.click('text=data.map(item => item.name)')
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user