@fulldevlabs/fullui
Version:
A component library built for Astro
20 lines (18 loc) • 555 B
text/typescript
import { flatten, unflatten } from 'flat'
import { isString } from 'radash'
import { mapKeys } from 'remeda'
export const transformUnderscores = (data: any): any => {
const flat: any = flatten(data)
const merged = mapKeys(flat, (key) => {
if (!isString(key)) return key
const parts = key.split('.')
const result = parts.map((part) => {
return part.replace(/^_+/, '')
})
const filtered = result.filter(Boolean)
const joined = filtered.join('.')
return joined
})
const nested = unflatten(merged)
return nested
}