UNPKG

piping

Version:

Keep your code piping hot! Live code reloading without additional binaries

55 lines (45 loc) 1 kB
var lodash = require("lodash"); var fs = require("fs"); var path = require("path"); var cluster = require("cluster"); var piping = require("../../lib/piping"); var dummy = path.join(__dirname, "dummy.js"); var defaults = { throw: false, main: path.join(__dirname, "main.js"), quiet: true } function trigger() { fs.readFile(dummy, function(err, data) { if (err) throw err; fs.writeFile(dummy, data, function(err) { if (err) throw err; }); }); } function wrapper(override, ready) { if (arguments.length === 1) { ready = override; override = null; } return piping(options(override), ready); } function child(override, fn) { if (arguments.length === 1) { fn = override; override = null; } if (!cluster.isMaster) { fn(piping(options(override))); } } function options(override) { return lodash.assign(defaults, { main: module.parent.filename }, override) } module.exports = { trigger: trigger, piping: wrapper, child: child }