var fs = require("fs"),
    rollup = require("rollup"),
    dependencies = require("./package.json").dependencies;

rollup.rollup({
  input: "index.js",
  external: Object.keys(dependencies)
}).then(function(bundle) {
  return bundle.generate({format: "cjs"});
}).then(function(result) {
  var code = result.code + "Object.defineProperty(exports, \"event\", {get: function() { return d3Selection.event; }});\n";
  return new Promise(function(resolve, reject) {
    fs.writeFile("build/d3.node.js", code, "utf8", function(error) {
      if (error) return reject(error);
      else resolve();
    });
  });
}).catch(abort);

function abort(error) {
  console.error(error.stack);
}