@gabimoncha/cursor-rules
Version:
A CLI for bootstrapping Cursor rules to a project
50 lines • 1.98 kB
JavaScript
import { z } from 'zod';
import { CURSOR_RULES_ISSUES_URL } from './constants.js';
import { logger, cursorRulesLogLevels } from './logger.js';
export class CursorRulesError extends Error {
constructor(message) {
super(message);
this.name = 'CursorRulesError';
}
}
export class CursorRulesConfigValidationError extends CursorRulesError {
constructor(message) {
super(message);
this.name = 'CursorRulesConfigValidationError';
}
}
export const handleError = (error) => {
logger.log('');
if (error instanceof CursorRulesError) {
logger.error(`✖ ${error.message}`);
// If expected error, show stack trace for debugging
logger.debug('Stack trace:', error.stack);
}
else if (error instanceof Error) {
logger.error(`✖ Unexpected error: ${error.message}`);
// If unexpected error, show stack trace by default
logger.note('Stack trace:', error.stack);
if (logger.getLogLevel() < cursorRulesLogLevels.DEBUG) {
logger.log('');
logger.note('For detailed debug information, use the --verbose flag');
}
}
else {
// Unknown errors
logger.error('✖ An unknown error occurred');
if (logger.getLogLevel() < cursorRulesLogLevels.DEBUG) {
logger.note('For detailed debug information, use the --verbose flag');
}
}
// Community support information
logger.log('');
logger.info('Need help?');
logger.info(`• File an issue on GitHub: ${CURSOR_RULES_ISSUES_URL}`);
};
export const rethrowValidationErrorIfZodError = (error, message) => {
if (error instanceof z.ZodError) {
const zodErrorText = error.errors.map((err) => `[${err.path.join('.')}] ${err.message}`).join('\n ');
throw new CursorRulesConfigValidationError(`${message}\n\n ${zodErrorText}\n\n Please check the config file and try again.`);
}
};
//# sourceMappingURL=errorHandle.js.map