runSearch
uses tcmts.cli.main.execute, which uses tcmts.cli.help.usageError, which uses tcmts.cli.help.usageOf, which uses tcmts.cli.style.bold, which uses node:util
Runs tcm search.
import { routeSearch } from "#codebase/tcmts/cli/commands"; import { execute, search, words } from "#codebase/tcmts/cli/main"; import type { Context } from "#codebase/tcmts/cli/run"; import { ask, UsageError } from "#codebase/tcmts/cli/ui"; import { parse } from "@bomb.sh/router"; export async function runSearch({ cb, cmd, rest }: Context): Promise<number> { const { model, literals } = execute(cmd, parse(routeSearch(), { argv: rest })); // (after `--`, text that looks like a flag: `tcm search -- --lines`) const given = [...model.text, ...words(literals)]; const text = given.length ? given.join(" ") : await ask("search <text>", "Search the code for", "text"); const limit = model.limit ? Number(model.limit) : undefined; if (limit !== undefined && !(limit > 0)) throw new UsageError(`--limit ${model.limit}: a number of lines`); return search(cb, text, { regex: !!model.regex, caseSensitive: !!model.case, wholeWord: !!model.word, ...(model.under ? { under: model.under } : {}), ...(limit ? { limit } : {}), }) ? 0 : 1; }
uses
- tcmts.cli.commands.routeSearch
- tcmts.cli.main.execute
- tcmts.cli.main.search
- tcmts.cli.main.words
- tcmts.cli.run.Context
- tcmts.cli.ui.UsageError
- tcmts.cli.ui.ask