-
-
Notifications
You must be signed in to change notification settings - Fork 259
Expand file tree
/
Copy pathcommand-parser.d.ts
More file actions
20 lines (19 loc) · 874 Bytes
/
command-parser.d.ts
File metadata and controls
20 lines (19 loc) · 874 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import type { CommandInfo } from '../command.js';
/**
* A command parser encapsulates a specific logic for mapping `CommandInfo` objects
* into another `CommandInfo`.
*
* A prime example is turning an abstract `npm:foo` into `npm run foo`, but it could also turn
* the prefix color of a command brighter, or maybe even prefixing each command with `time(1)`.
*/
export interface CommandParser {
/**
* Parses `commandInfo` and returns one or more `CommandInfo`s.
*
* Returning multiple `CommandInfo` is used when there are multiple possibilities of commands to
* run given the original input.
* An example of this is when the command contains a wildcard and it must be expanded into all
* viable options so that the consumer can decide which ones to run.
*/
parse: (commandInfo: CommandInfo) => CommandInfo | CommandInfo[];
}