category-list-to-tree = (list) ->
recurse-category = (c) ->
label: c?.'name_en' or 'Categories'
nodes: map recurse-category, filter do
where-eq do
level : c and c.level + 1 or 0
parent : c and c.id or void
, list
recurse-category null
vs.
is-child-of = ->
where-eq level: it.level + 1, parent: it.id
category-list-to-tree = (list) ->
recurse-category = (c) ->
label: c.'name_en'
nodes: filter (is-child-of c), list |> map recurse-category
filter (.level is 0), list
|> map recurse-category