fargv
Version:
Multi-customizable parser of process.argv for nodejs.
77 lines (41 loc) • 1.95 kB
JavaScript
const isObject = require("../../dependencies/isObject");
const mustConfigs = {
throwInsteadWarns: false,
showWarns: false,
rememberWarns: true,
};
//!!!The main functionality is duplicated in the test specifications for better performance!!!
const tryToArray = function(sourceString, mergingOptions) {
const configs = isObject(mergingOptions) ? Object.assign({}, mergingOptions, mustConfigs) : Object.assign({}, mustConfigs);
const attemp = this.fromFargvStringArray(sourceString, configs);
if(!attemp.warns) return attemp.value;
return false;
};
const tryToObject = function(sourceString, mergingOptions) {
const configs = isObject(mergingOptions) ? Object.assign({}, mergingOptions, mustConfigs) : Object.assign({}, mustConfigs);
const attemp = this.fromFargvStringObject(sourceString, configs);
if(!attemp.warns) return attemp.value;
return false;
};
const sourceStringCanBeStrictFargvArray = function (sourceString, mergingOptions) {
if(sourceString[0] != "[") return false;
if(sourceString[sourceString.length - 1] != "]") return false;
const configs = isObject(mergingOptions) ? Object.assign({}, mergingOptions, mustConfigs) : Object.assign({}, mustConfigs);
const attemp = this.fromFargvStringArray(sourceString, configs);
if(!attemp.warns) return attemp.value;
return false;
};
const sourceStringCanBeStrictFargvObject = function (sourceString, mergingOptions) {
if(sourceString[0] != "{") return false;
if(sourceString[sourceString.length - 1] != "}") return false;
const configs = isObject(mergingOptions) ? Object.assign({}, mergingOptions, mustConfigs) : Object.assign({}, mustConfigs);
const attemp = this.fromFargvStringObject(sourceString, configs);
if(!attemp.warns) return attemp.value;
return false;
};
module.exports = {
tryToArray,
tryToObject,
tryToStrictArray: sourceStringCanBeStrictFargvArray,
tryToStrictObject: sourceStringCanBeStrictFargvObject,
};