MCPcopy Create free account
hub / github.com/vercel/vercel / tryOpenApiFallback

Function tryOpenApiFallback

packages/cli/src/util/openapi/try-openapi-fallback.ts:23–67  ·  view source on GitHub ↗
(
  client: Client,
  cliArgs: string[],
  resolveTag: () => Promise<string | null>
)

Source from the content-addressed store, hash-verified

21 * @returns Exit code when delegation happened, or `null` if OpenAPI could not handle it.
22 */
23export async function tryOpenApiFallback(
24 client: Client,
25 cliArgs: string[],
26 resolveTag: () => Promise<string | null>
27): Promise<number | null> {
28 if (!process.env.VERCEL_AUTO_API) {
29 return null;
30 }
31
32 const operationHint = cliArgs[0];
33 if (!operationHint || operationHint.startsWith('-')) {
34 return null;
35 }
36
37 const tag = await resolveTag();
38 if (!tag) {
39 return null;
40 }
41
42 const apiFlagsSpec = getFlagsSpecification(apiCommand.options);
43 let apiParsed: ReturnType<typeof parseArguments<typeof apiFlagsSpec>>;
44 try {
45 apiParsed = parseArguments(client.argv.slice(2), apiFlagsSpec, {
46 permissive: true,
47 });
48 } catch {
49 return null;
50 }
51
52 const flags = apiParsed.flags as ParsedFlags;
53 if (flags['--dangerously-skip-permissions']) {
54 client.dangerouslySkipPermissions = true;
55 }
56
57 if (flags['--help']) {
58 return printOperationHelpForTagCommand(client, flags, tag, operationHint);
59 }
60
61 return runTagOperation(client, {
62 tag,
63 operationId: operationHint,
64 flags,
65 positionalOperationFields: cliArgs.slice(1),
66 });
67}

Callers 3

mainFunction · 0.90
mainFunction · 0.90
teamsFunction · 0.90

Calls 4

getFlagsSpecificationFunction · 0.90
parseArgumentsFunction · 0.90
runTagOperationFunction · 0.90

Tested by

no test coverage detected