Sha256: 327242c0afae207b7aefa13133439e3b321d7db4229febc5b7bd5285770ac7f7

Contents?: true

Size: 1.04 KB

Versions: 59

Compression:

Stored size: 1.04 KB

Contents

export function parseCommand(cmd) {
    const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ');
    const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/);
    const bregex = /\.*[\][<>]/g;
    const firstCommand = splitCommand.shift();
    if (!firstCommand)
        throw new Error(`No command found in: ${cmd}`);
    const parsedCommand = {
        cmd: firstCommand.replace(bregex, ''),
        demanded: [],
        optional: [],
    };
    splitCommand.forEach((cmd, i) => {
        let variadic = false;
        cmd = cmd.replace(/\s/g, '');
        if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1)
            variadic = true;
        if (/^\[/.test(cmd)) {
            parsedCommand.optional.push({
                cmd: cmd.replace(bregex, '').split('|'),
                variadic,
            });
        }
        else {
            parsedCommand.demanded.push({
                cmd: cmd.replace(bregex, '').split('|'),
                variadic,
            });
        }
    });
    return parsedCommand;
}

Version data entries

59 entries across 59 versions & 6 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.22 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.21 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.20 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.19 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.18 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.17 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.16 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.15 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.14 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.13 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.12 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.11 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.10 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.9 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.8 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js
clapton-0.0.7 lib/clapton/javascripts/node_modules/yargs/build/lib/parse-command.js