mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-02 17:08:39 +00:00
* feat(shadcn): refactor fetchFromRegistry * refactor(shadcn): better api * chore: changeset * fix * fix * refactor * refactor(shadcn): update getRegistryItems * refactor(shadcn): error handling * fix: getRegistryItems header context * fix: tests * feat(shadcn): export errors * refactor(shadcn): getRegistryItems getRegistry * fix * fix * fix * fix * chore: changeset * chore: remove minor changeset
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { RegistryError } from "@/src/registry/errors"
|
|
import { highlighter } from "@/src/utils/highlighter"
|
|
import { logger } from "@/src/utils/logger"
|
|
import { z } from "zod"
|
|
|
|
export function handleError(error: unknown) {
|
|
logger.break()
|
|
logger.error(
|
|
`Something went wrong. Please check the error below for more details.`
|
|
)
|
|
logger.error(`If the problem persists, please open an issue on GitHub.`)
|
|
logger.error("")
|
|
if (typeof error === "string") {
|
|
logger.error(error)
|
|
logger.break()
|
|
process.exit(1)
|
|
}
|
|
|
|
if (error instanceof RegistryError) {
|
|
if (error.message) {
|
|
logger.error(error.cause ? "Error:" : "Message:")
|
|
logger.error(error.message)
|
|
}
|
|
|
|
if (error.cause) {
|
|
logger.error("\nMessage:")
|
|
logger.error(error.cause)
|
|
}
|
|
|
|
if (error.suggestion) {
|
|
logger.error("\nSuggestion:")
|
|
logger.error(error.suggestion)
|
|
}
|
|
logger.break()
|
|
process.exit(1)
|
|
}
|
|
|
|
if (error instanceof z.ZodError) {
|
|
logger.error("Validation failed:")
|
|
for (const [key, value] of Object.entries(error.flatten().fieldErrors)) {
|
|
logger.error(`- ${highlighter.info(key)}: ${value}`)
|
|
}
|
|
logger.break()
|
|
process.exit(1)
|
|
}
|
|
|
|
if (error instanceof Error) {
|
|
logger.error(error.message)
|
|
logger.break()
|
|
process.exit(1)
|
|
}
|
|
|
|
logger.break()
|
|
process.exit(1)
|
|
}
|