23 lines
449 B
JavaScript
23 lines
449 B
JavaScript
|
export function parsePagesToTree(pages) {
|
||
|
let out = []
|
||
|
let children = []
|
||
|
let map = new Map()
|
||
|
for (let page of pages) {
|
||
|
if (!page.parent_id) {
|
||
|
out.push(page)
|
||
|
} else {
|
||
|
children.push(page)
|
||
|
}
|
||
|
map.set(page.id, page)
|
||
|
}
|
||
|
for (let page of children) {
|
||
|
let parent = map.get(page.parent_id)
|
||
|
if (!parent.children) {
|
||
|
parent.children = []
|
||
|
}
|
||
|
parent.children.push(page)
|
||
|
}
|
||
|
return {
|
||
|
tree: out
|
||
|
}
|
||
|
}
|