From abd94a7f5a50f43c797a11b53549ae48fff667c3 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 10 Oct 2016 03:43:44 +0200 Subject: add node_modules to address #4364 --- node_modules/sequencify/index.js | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 node_modules/sequencify/index.js (limited to 'node_modules/sequencify/index.js') diff --git a/node_modules/sequencify/index.js b/node_modules/sequencify/index.js new file mode 100644 index 000000000..b05f8bf32 --- /dev/null +++ b/node_modules/sequencify/index.js @@ -0,0 +1,46 @@ +/*jshint node:true */ + +"use strict"; + +var sequence = function (tasks, names, results, nest) { + var i, name, node, e, j; + nest = nest || []; + for (i = 0; i < names.length; i++) { + name = names[i]; + // de-dup results + if (results.indexOf(name) === -1) { + node = tasks[name]; + if (!node) { + e = new Error('task "'+name+'" is not defined'); + e.missingTask = name; + e.taskList = []; + for (j in tasks) { + if (tasks.hasOwnProperty(j)) { + e.taskList.push(tasks[j].name); + } + } + throw e; + } + if (nest.indexOf(name) > -1) { + nest.push(name); + e = new Error('Recursive dependencies detected: '+nest.join(' -> ')); + e.recursiveTasks = nest; + e.taskList = []; + for (j in tasks) { + if (tasks.hasOwnProperty(j)) { + e.taskList.push(tasks[j].name); + } + } + throw e; + } + if (node.dep.length) { + nest.push(name); + sequence(tasks, node.dep, results, nest); // recurse + nest.pop(name); + } + results.push(name); + } + } +}; + +module.exports = sequence; -- cgit v1.2.3