with-package
Version:
Run any command with package.json properties exposed as environment variables
29 lines (22 loc) • 664 B
JavaScript
var propertyNameRegExp = /pkg\.([\w-]+)/;
function isPackageProperty(x) {
return propertyNameRegExp.test(x);
}
var prefix = 'pkg.';
function replaceVar(primitives, arg) {
if (isPackageProperty(arg)) {
var property = propertyNameRegExp.exec(arg)[1];
var originalText = prefix + property;
var value = primitives[property] || '';
var updatedText = arg.replace(originalText, value);
return replaceVar(primitives, updatedText);
} else {
return arg;
}
}
function replaceVars(pkg, args) {
var replaceArg = replaceVar.bind(null, pkg);
var replacedArgs = args.map(replaceArg);
return replacedArgs
}
module.exports = replaceVars;