Atlas › Test

parse-command.mjs|title=parseCommand should throw if no command is specified|occurrence=1

Exact test identity: mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/parse-command.mjs|title=parseCommand should throw if no command is specified|occurrence=1

Package
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test
Suite / test hierarchy
parse-command.mjs|title=parseCommand should throw if no command is specified|occurrence=1
Test
parse-command.mjs|title=parseCommand should throw if no command is specified|occurrence=1
Introduced at
parse-command.ts ×1 Frontier kind: Joint frontier
Covered ranges
3
Covered lines
20
Covered files
1

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

lib/parse-command.ts 20 covered LOC · 3 ranges

Open complete file

1 > import {NotEmptyArray} from './typings/common-types.js'; parse-command.ts
2 >
3 > export function parseCommand(cmd: string) {
4 > const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' '); parse-command.ts
5 > const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/);
6 > const bregex = /\.*[\][<>]/g;
7 >
8 > const firstCommand = splitCommand.shift();
9 > if (!firstCommand) throw new Error(`No command found in: ${cmd}`);
10
11 const parsedCommand: ParsedCommand = {
32 return parsedCommand;
33 }
35 > export interface ParsedCommand {
36 > cmd: string;
37 > demanded: Positional[];
38 > optional: Positional[];
39 > }
40 >
41 > export interface Positional {
42 > cmd: NotEmptyArray<string>;
43 > variadic: boolean;
44 > }