HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/releases/20210303111656Z/node_modules/snyk-tree/lib/archy.js
module.exports = makeArchy;

var archy = require('archy');

function defaultRender(leaf) {
  var label = leaf.name;
  if (leaf.version) {
    label += '@' + leaf.version;
  }

  return label;
}

function makeArchy(data, render) {
  if (!render) {
    render = defaultRender;
  }

  return archy(walkDepTree(data, null, function (leaf) {
    var label = render(leaf.data);

    if (leaf.deps) {
      return {
        label: label,
        nodes: leaf.deps,
      };
    } else {
      return label;
    }
  }));
}

function walkDepTree(data, parent, fn) {
  var deps = null;

  if (!data.parent) {
    data.parent = [];
  }

  if (parent) {
    data.parent.push({
      name: parent.name,
      version: parent.version,
    });
  }

  if (data.dependencies) {
    deps = Object.keys(data.dependencies).sort().map(function (module) {
      var dep = data.dependencies[module];
      if (!dep.name) {
        dep.name = module;
      }
      return walkDepTree(dep, data, fn);
    });
  }

  return fn({
    data: data,
    deps: deps,
  });
}