/
sweetebin
/
hackaton_26
Обзор
Документация
Войти
/
sweetebin
/
hackaton_26
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
web-form-project/node_modules/yargs/build/lib/parse-command.js
32 строки
1 KB
AKorostelev
web form project added
28 июл 2026, 10:57
28 июл 2026, 10:57
4339e77
Код
Авторство
О чём код?
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; }