JSFiddle - React, Tailwind, and code Playground

JavaScript

var data = [
        { "dep": "d1", "name": "name1", "size": "size1" },
        { "dep": "d1", "name": "name2", "size": "size2" },
        { "dep": "d2", "name": "name1", "size": "size3" },
        { "dep": "d2", "name": "name2", "size": "size4" }
    ]
    
    var newData = {"name":"root", "children":{}}
    
    data.forEach(function(d){
        if(typeof newData.children[d.dep] !== 'undefined')  {
            newData.children[d.dep].children.push(d)      
        } else {
            newData.children[d.dep] = {"name": d.dep, "children": [d]}
        }
    })
    newData.children = Object.keys(newData.children).map(function (key) { return newData.children[key]; });
    
    $("body").text(JSON.stringify(newData))