adamrenklint/asimov.js

View on GitHub
index.js

Summary

Maintainability
A
0 mins
Test Coverage
// Public interface and bootstrap

process.env.ROLE = process.env.ROLE || 'master';
var isMaster = process.env.ROLE === 'master';
var Asimov = isMaster ? require('./lib/Master') : require('./lib/Worker');
var asimov = global.asimov = module.exports = global.asimov || (new Asimov()).publicInterface();

// Export public classes
module.exports.Asimov = Asimov;
['Base', 'Master', 'Worker', 'Sequencer', 'CommandLineInterface'].forEach(function (name) {
  module.exports[name] = require('./lib/' + name);
});

module.exports.mixins = {
  'Configurable': require('./lib/mixins/Configurable')
};

module.parent || asimov.start();