JSFiddle - React, Tailwind, and code Playground

JavaScript

var s = '',
    a = s.split('\n'),
    tree = {}, lastNode

    a.forEach(function (x) {
        lastNode = tree
        var list = x.split(','),
            code = list.shift()
        list.forEach(function (x) {
            if (!lastNode[x]) lastNode[x] = {};
            lastNode = lastNode[x]
            lastNode.codes=lastNode.codes||[]
            lastNode.codes.push(code)
        })
    })

var recur=function(node){
    var k=Object.keys(node).filter(function(x){return x!=='codes'})
    k.forEach(function(x){
        console.log(x+' {'+node[x].codes+'}\n')
        recur(node[x])
    })   
}
recur(tree)