// @ts-expect-error import merge from 'merge-value' import { getKeyPath } from '../../utils' import type { Tree } from '../../types' export const isInput = (v: object): v is { __levaInput: true; path: string } => '__levaInput' in v export const buildTree = (paths: string[], filter?: string): Tree => { const tree = {} const _filter = filter ? filter.toLowerCase() : null paths.forEach((path) => { const [valueKey, folderPath] = getKeyPath(path) if (!_filter || valueKey.toLowerCase().indexOf(_filter) > -1) { merge(tree, folderPath, { [valueKey]: { __levaInput: true, path }, }) } }) return tree }