Buckets:
| 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; | |
| } | |
Xet Storage Details
- Size:
- 1.06 kB
- Xet hash:
- de40a5ddae48348f192b29412ad682594e52dc9e79e1750e9e9fafa15c7f633e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.