70 lines
1.5 KiB
JavaScript
Executable File
70 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/**
|
|
* This tiny wrapper file checks for known node flags and appends them
|
|
* when found, before invoking the "real" _babel-node(1) executable.
|
|
*/
|
|
|
|
var args = [__dirname + "/_babel-node"];
|
|
|
|
process.argv.slice(2).forEach(function(arg){
|
|
var flag = arg.split("=")[0];
|
|
|
|
switch (flag) {
|
|
case "-d":
|
|
args.unshift("--debug");
|
|
break;
|
|
|
|
case "debug":
|
|
case "--debug":
|
|
case "--debug-brk":
|
|
args.unshift(arg);
|
|
break;
|
|
|
|
case "-gc":
|
|
case "--expose-gc":
|
|
args.unshift("--expose-gc");
|
|
break;
|
|
|
|
case "--gc-global":
|
|
case "--harmony":
|
|
case "--harmony-proxies":
|
|
case "--harmony-collections":
|
|
case "--harmony-generators":
|
|
case "--no-deprecation":
|
|
case "--prof":
|
|
case "--throw-deprecation":
|
|
case "--trace-deprecation":
|
|
case "--use-strict":
|
|
args.unshift(arg);
|
|
break;
|
|
|
|
default:
|
|
if (arg.indexOf("--trace") === 0) {
|
|
args.unshift(arg);
|
|
} else {
|
|
args.push(arg);
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
|
|
try {
|
|
var kexec = require("kexec");
|
|
kexec(process.argv[0], args);
|
|
} catch (err) {
|
|
if (err.code !== "MODULE_NOT_FOUND") throw err;
|
|
|
|
var child_process = require("child_process");
|
|
var proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" });
|
|
proc.on("exit", function (code, signal) {
|
|
process.on("exit", function () {
|
|
if (signal) {
|
|
process.kill(process.pid, signal);
|
|
} else {
|
|
process.exit(code);
|
|
}
|
|
})
|
|
});
|
|
}
|