UNPKG

mecano

Version:

Common functions for system deployment.

48 lines (44 loc) 1.07 kB
// Generated by CoffeeScript 1.7.1 var EventEmitter, count; EventEmitter = require('events').EventEmitter; count = 0; module.exports = function(mecano) { var child, k, v, _fn; child = new EventEmitter; child.todos = []; _fn = function(k) { return child[k] = function(options, callback) { child.todos.push([k, arguments]); return child; }; }; for (k in mecano) { v = mecano[k]; _fn(k); } child.end = function(err, modified) { var c, todo; todo = child.todos.shift(); if (err || !todo) { if (child.listeners('error').length) { if (err) { child.emit('error', err); } else { child.emit('end', modified); } } else { child.emit('both', err, modified); } return; } c = mecano[todo[0]].apply(null, todo[1]); c.id = "child " + (count++); c.on('error', function(err) { return child.end(err, 0); }); return c.on('end', function(modified) { return child.end(null, modified); }); }; return child; };