add possiblity of passing user arguments by separating them with --

Now, when user arguments have names colliding with node arguments,
they can be separated by -- and will be parsed correctly.
This commit is contained in:
Ondrej Kraus 2015-03-05 14:19:26 +01:00
parent 76ca40f698
commit 160de340b0

View File

@ -1,5 +1,7 @@
#!/usr/bin/env node
var indexOf = require("lodash/array/indexOf");
/**
* This tiny wrapper file checks for known node flags and appends them
* when found, before invoking the "real" _babel-node(1) executable.
@ -7,7 +9,17 @@
var args = [__dirname + "/_babel-node"];
process.argv.slice(2).forEach(function(arg){
var babelArgs = process.argv.slice(2);
var userArgs;
// separate node arguments from script arguments
var argSeparator = indexOf(babelArgs, "--");
if (argSeparator > -1) {
userArgs = babelArgs.slice(argSeparator); // including the --
babelArgs = babelArgs.slice(0, argSeparator);
}
babelArgs.forEach(function(arg){
var flag = arg.split("=")[0];
switch (flag) {
@ -49,6 +61,11 @@ process.argv.slice(2).forEach(function(arg){
}
});
// append arguments passed after --
if (argSeparator > -1) {
args = args.concat(userArgs);
}
try {
var kexec = require("kexec");
kexec(process.argv[0], args);