UNPKG

lorehub

Version:

Capture and surface the collective wisdom of your codebase

51 lines 2.41 kB
import React from 'react'; import { Box, Text } from 'ink'; export function ErrorMessage({ error, context, suggestions }) { const errorMessage = error instanceof Error ? error.message : error; // Map common errors to user-friendly messages const friendlyMessages = { 'ENOENT': { message: 'File or directory not found', suggestions: ['Check if you\'re in the right directory', 'Ensure the realm exists'], }, 'EACCES': { message: 'Permission denied', suggestions: ['Check file permissions', 'Try running with appropriate permissions'], }, 'SQLITE_BUSY': { message: 'Database is locked', suggestions: ['Another process might be using the database', 'Try again in a moment'], }, 'Content is required': { message: 'Lore content cannot be empty', suggestions: ['Enter a meaningful lore description', 'Press Tab to navigate to the content field'], }, 'Failed to load realm': { message: 'Could not load realm information', suggestions: ['Ensure you\'re in a valid realm directory', 'Check if package.json exists'], }, }; // Find matching friendly message let displayMessage = errorMessage; let displaySuggestions = suggestions || []; for (const [key, value] of Object.entries(friendlyMessages)) { if (errorMessage.includes(key)) { displayMessage = value.message; displaySuggestions = [...value.suggestions, ...(suggestions || [])]; break; } } return (React.createElement(Box, { flexDirection: "column", marginY: 1 }, React.createElement(Box, null, React.createElement(Text, { color: "red", bold: true }, "\u26A0 Error", context ? ` (${context})` : '', ": "), React.createElement(Text, { color: "red" }, displayMessage)), displaySuggestions.length > 0 && (React.createElement(Box, { flexDirection: "column", marginTop: 1, marginLeft: 2 }, React.createElement(Text, { dimColor: true }, "Suggestions:"), displaySuggestions.map((suggestion, index) => (React.createElement(Text, { key: index, dimColor: true }, "\u2022 ", suggestion))))))); } //# sourceMappingURL=ErrorMessage.js.map