33 lines
805 B
TypeScript
33 lines
805 B
TypeScript
#!/usr/bin/env bun
|
|
|
|
import { createMain } from "citty";
|
|
import { initializeCompletion, main } from "./command/main";
|
|
import { provideContext } from "./lib/context";
|
|
import z, { ZodError } from "zod";
|
|
|
|
function formatUnknownError(error: unknown): string {
|
|
if (error instanceof ZodError) return z.prettifyError(error);
|
|
|
|
if (error instanceof Error) {
|
|
const stack = error.stack?.split("\n").slice(0, 3).join("\n");
|
|
return stack && stack.trim().length > 0 ? stack : error.message;
|
|
}
|
|
|
|
try {
|
|
return JSON.stringify(error, null, 2);
|
|
} catch {
|
|
return String(error);
|
|
}
|
|
}
|
|
|
|
async function run() {
|
|
await initializeCompletion();
|
|
const cli = createMain(main);
|
|
await provideContext(() => cli());
|
|
}
|
|
|
|
run().catch((e) => {
|
|
console.error(formatUnknownError(e));
|
|
process.exitCode = 1;
|
|
});
|