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
appmap-0.71.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.70.2 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.70.1 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.70.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.69.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.68.2 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.68.1 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.68.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.67.1 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.67.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.66.2 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.66.1 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.66.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.65.1 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.65.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.64.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.63.0 ./node_modules/yargs/build/lib/parse-command.js
appmap-0.62.1 ./node_modules/yargs/build/lib/parse-command.js
epuber-stylus-source-0.54.8 vendor/node_modules/yargs/build/lib/parse-command.js