opusdev/vector-similarity-api
1
1var parse = require('./parse');2 3/**4 * Converts a string to command line args, in particular5 * groups together quoted values.6 * This is a utility function to allow calling nodemon as a required7 * library, but with the CLI args passed in (instead of an object).8 *9 * @param {String} string10 * @return {Array}11 */12function stringToArgs(string) {13 var args = [];14 15 var parts = string.split(' ');16 var length = parts.length;17 var i = 0;18 var open = false;19 var grouped = '';20 var lead = '';21 22 for (; i < length; i++) {23 lead = parts[i].substring(0, 1);24 if (lead === '"' || lead === '\'') {25 open = lead;26 grouped = parts[i].substring(1);27 } else if (open && parts[i].slice(-1) === open) {28 open = false;29 grouped += ' ' + parts[i].slice(0, -1);30 args.push(grouped);31 } else if (open) {32 grouped += ' ' + parts[i];33 } else {34 args.push(parts[i]);35 }36 }37 38 return args;39}40 41module.exports = {42 parse: function (argv) {43 if (typeof argv === 'string') {44 argv = stringToArgs(argv);45 }46 47 return parse(argv);48 },49};