tweak-tools
Version:
Tweak your React projects until awesomeness
21 lines (18 loc) • 603 B
text/typescript
// @ts-expect-error
import merge from 'merge-value'
import { getKeyPath } from '../../utils'
import type { Tree } from '../../types'
export const isInput = (v: object) => '__tweakInput' 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]: { __tweakInput: true, path },
})
}
})
return tree
}