vercel
Version:
The command-line interface for Vercel
111 lines (108 loc) • 3.28 kB
JavaScript
import { createRequire as __createRequire } from 'node:module';
import { fileURLToPath as __fileURLToPath } from 'node:url';
import { dirname as __dirname_ } from 'node:path';
const require = __createRequire(import.meta.url);
const __filename = __fileURLToPath(import.meta.url);
const __dirname = __dirname_(__filename);
import {
validateJsonOutput
} from "./chunk-XPKWKPWA.js";
import {
typesSubcommand
} from "./chunk-CQANJIEC.js";
import {
table
} from "./chunk-DKD6GTQT.js";
import {
getFlagsSpecification,
parseArguments,
printError
} from "./chunk-4GQQJY5Y.js";
import {
isAPIError
} from "./chunk-UGXBNJMO.js";
import "./chunk-P4QNYOFB.js";
import {
output_manager_default
} from "./chunk-ZQKJVHXY.js";
import {
require_source
} from "./chunk-S7KYDPEM.js";
import {
__toESM
} from "./chunk-TZ2YI2VH.js";
// src/commands/activity/types.ts
var import_chalk = __toESM(require_source(), 1);
function formatErrorJson(code, message) {
return `${JSON.stringify({ error: { code, message } }, null, 2)}
`;
}
async function types(client, telemetry) {
let parsedArgs;
const flagsSpecification = getFlagsSpecification(typesSubcommand.options);
try {
parsedArgs = parseArguments(client.argv.slice(2), flagsSpecification);
} catch (err) {
printError(err);
return 1;
}
const flags = parsedArgs.flags;
telemetry.trackCliOptionFormat(flags["--format"]);
const formatResult = validateJsonOutput(flags);
if (!formatResult.valid) {
output_manager_default.error(formatResult.error);
return 1;
}
const jsonOutput = formatResult.jsonOutput;
output_manager_default.spinner("Fetching event types...");
try {
const response = await client.fetch("/v1/events/types");
const eventTypes = response.types ?? [];
if (jsonOutput) {
client.stdout.write(`${JSON.stringify(response, null, 2)}
`);
return 0;
}
if (eventTypes.length === 0) {
output_manager_default.log("No activity event types found.");
return 0;
}
const rows = [
[import_chalk.default.bold(import_chalk.default.cyan("Name")), import_chalk.default.bold(import_chalk.default.cyan("Description"))],
...eventTypes.map((eventType) => [
eventType.name,
eventType.deprecated ? `${eventType.description ?? "-"} (Deprecated)` : eventType.description ?? "-"
])
];
const tableOutput = table(rows, { hsep: 4 }).split("\n").map((line) => line.trimEnd()).join("\n").replace(/^/gm, " ");
output_manager_default.print(`
${tableOutput}
`);
return 0;
} catch (err) {
if (isAPIError(err)) {
if (err.status === 403) {
const message2 = "You do not have permission to list activity event types.";
if (jsonOutput) {
client.stdout.write(formatErrorJson("FORBIDDEN", message2));
} else {
output_manager_default.error(message2);
}
return 1;
}
const message = err.serverMessage || `API error (${err.status}).`;
if (jsonOutput) {
client.stdout.write(formatErrorJson(err.code || "API_ERROR", message));
} else {
output_manager_default.error(message);
}
return 1;
}
throw err;
} finally {
output_manager_default.stopSpinner();
}
}
export {
types as default
};