UNPKG

ruch

Version:

Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.

69 lines (56 loc) 2.57 kB
import { logger } from './logger'; // Types export interface Logger { error: typeof logger.error; success: typeof logger.success; info: typeof logger.info; warning: typeof logger.warning; log: typeof logger.log; } // Pure functions for logging export const logError = (logger: Logger, message: string): void => { logger.error(message); }; export const logSuccess = (logger: Logger, message: string): void => { logger.success(message); }; export const logInfo = (logger: Logger, message: string): void => { logger.info(message); }; export const logWarning = (logger: Logger, message: string): void => { logger.warning(message); }; export const logDebug = (logger: Logger, message: string): void => { logger.log(message); }; // Domain specific logging functions export const logDomainCreationSuccess = (logger: Logger, domainName: string, domainPath: string): void => { logSuccess(logger, `Domain "${domainName}" created successfully!`); logInfo(logger, `Location: ${domainPath}`); }; export const logDomainDeletionSuccess = (logger: Logger, domainName: string): void => { logSuccess(logger, `Domain "${domainName}" deleted successfully!`); }; export const logDomainAlreadyExists = (logger: Logger, domainName: string, domainPath: string): void => { logError(logger, `Domain "${domainName}" already exists at ${domainPath}`); }; export const logDomainNotFound = (logger: Logger, domainName: string, domainPath: string): void => { logError(logger, `Domain "${domainName}" not found at ${domainPath}`); }; export const logInvalidDomainName = (logger: Logger, domainName: string): void => { logError(logger, `❌ Invalid domain name: "${domainName}"`); logError(logger, '💡 Domain names must be valid TypeScript identifiers:'); logError(logger, ' - Start with a letter or underscore'); logError(logger, ' - Contain only letters, numbers, and underscores'); logError(logger, ' - No hyphens, spaces, or special characters'); logError(logger, '📝 Examples: "user", "userProfile", "user_profile", "orderManagement"'); }; export const logNoDomainsFound = (logger: Logger, domainsPath: string): void => { logInfo(logger, 'No domains found in src/domains.'); logInfo(logger, '💡 Use "ruch create <domain-name>" to create your first domain.'); }; export const logDomainsListed = (logger: Logger, domainCount: number, domainsPath: string): void => { logSuccess(logger, `${domainCount} domain(s) found:`); logInfo(logger, `Total: ${domainCount} domain(s)`); logInfo(logger, `Location: ${domainsPath}`); };