diff options
| author | Seth Troisi <[email protected]> | 2025-04-30 00:26:07 +0000 |
|---|---|---|
| committer | Seth Troisi <[email protected]> | 2025-04-30 22:17:08 +0000 |
| commit | 5f5edb4c9bac24c4875ffc1a5a97ad8cf11f4436 (patch) | |
| tree | 376f7f0863d0db0c354ec6f2212d16f9c20cd995 /packages/cli/src/ui/utils/commandUtils.ts | |
| parent | 68a3020044b3c8567641c8fdcd5a369366dab981 (diff) | |
Added bang(!) commands as a shell passthrough
Diffstat (limited to 'packages/cli/src/ui/utils/commandUtils.ts')
| -rw-r--r-- | packages/cli/src/ui/utils/commandUtils.ts | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/packages/cli/src/ui/utils/commandUtils.ts b/packages/cli/src/ui/utils/commandUtils.ts index 89e207d9..64046658 100644 --- a/packages/cli/src/ui/utils/commandUtils.ts +++ b/packages/cli/src/ui/utils/commandUtils.ts @@ -16,11 +16,19 @@ export const isAtCommand = (query: string): boolean => // Check if starts with @ OR has a space, then @, then a non-space character. query.startsWith('@') || /\s@\S/.test(query); +const control_symbols: string[] = ['/', '@', '!', '?', '$']; /** - * Checks if a query string represents a slash command (starts with '/'). + * Returns the first word of query with optional leading slash, ampersand, bang. * * @param query The input query string. - * @returns True if the query is a slash command, false otherwise. + * @returns optional leading symbol and first word of query */ -export const isSlashCommand = (query: string): boolean => - query.trim().startsWith('/'); +export const getCommandFromQuery = ( + query: string, +): [string | undefined, string] => { + const word = query.trim().split(/\s/, 1)[0]; + if (word.length > 0 && control_symbols.includes(word[0])) { + return [word[0], word.slice(1)]; + } + return [undefined, word]; +}; |
