capnp-js-plugin
Version:
Capnproto implementation for Javascript
26 lines (25 loc) • 834 B
JavaScript
var node = require('./node');
var joinId = require('./joinId');
var imports = require('./imports');
module.exports = function(requestedFiles, nodes) {
var is = imports(requestedFiles, nodes);
var trees = [];
requestedFiles.forEach(function(file) {
var index = {};
nodes.forEach(function(n) {
index[joinId(n.getId())] = n;
});
var id = joinId(file.getId());
var children = index[id].getNestedNodes().map(function(c) {
return node([ c ], index);
});
trees.push({
name: file.getFilename().toString(),
meta: "file",
imports: is[id],
id: id,
nodes: children
});
});
return trees;
};