You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
604 B
27 lines
604 B
'use strict'; |
|
|
|
module.exports = function(tasks) { |
|
var map = {}; |
|
var arr = []; |
|
Object.keys(tasks).forEach(function(taskname) { |
|
var task = { |
|
label: taskname, |
|
type: 'task', |
|
nodes: [], |
|
}; |
|
map[taskname] = task; |
|
arr.push(task); |
|
}); |
|
Object.keys(tasks).forEach(function(taskname) { |
|
var task = map[taskname]; |
|
tasks[taskname].dep.forEach(function(childname) { |
|
var child = map[childname] || { |
|
label: childname, |
|
type: 'task', |
|
nodes: [], |
|
}; |
|
task.nodes.push(child); |
|
}); |
|
}); |
|
return { label: 'Tasks', nodes: arr }; |
|
};
|
|
|