import * as plugins from './plugins.js'; import * as commitinfo from './00_commitinfo_data.js'; export const logger = plugins.smartlog.Smartlog.createForCommitinfo(commitinfo.commitinfo); logger.enableConsole(); // Color-coded log level indicators const logIcons = { info: plugins.consolecolor.coloredString('ℹ', 'cyan'), success: plugins.consolecolor.coloredString('✓', 'green'), warn: plugins.consolecolor.coloredString('⚠', 'orange'), error: plugins.consolecolor.coloredString('✖', 'red'), start: plugins.consolecolor.coloredString('▶', 'blue'), done: plugins.consolecolor.coloredString('✔', 'green'), package: plugins.consolecolor.coloredString('📦', 'blue'), build: plugins.consolecolor.coloredString('🔨', 'cyan'), publish: plugins.consolecolor.coloredString('🚀', 'green'), }; // Helper function for info messages with color export const logInfo = (message: string, data?: any) => { const coloredMessage = `${logIcons.info} ${plugins.consolecolor.coloredString(message, 'cyan')}`; logger.log('info', coloredMessage, data); }; // Helper function for success messages export const logSuccess = (message: string, data?: any) => { const coloredMessage = `${logIcons.success} ${plugins.consolecolor.coloredString(message, 'green')}`; logger.log('ok', coloredMessage, data); }; // Helper function for warning messages export const logWarn = (message: string, data?: any) => { const coloredMessage = `${logIcons.warn} ${plugins.consolecolor.coloredString(message, 'orange')}`; logger.log('warn', coloredMessage, data); }; // Helper function for error messages export const logError = (message: string, data?: any) => { const coloredMessage = `${logIcons.error} ${plugins.consolecolor.coloredString(message, 'red')}`; logger.log('error', coloredMessage, data); }; // Helper function for start of operations export const logStart = (operation: string) => { const coloredMessage = `${logIcons.start} ${plugins.consolecolor.coloredString(`Starting ${operation}...`, 'blue')}`; logger.log('info', coloredMessage); }; // Helper function for completion of operations export const logDone = (operation: string) => { const coloredMessage = `${logIcons.done} ${plugins.consolecolor.coloredString(`Completed ${operation}`, 'green')}`; logger.log('ok', coloredMessage); }; // Helper function for package-related messages export const logPackage = (message: string, packageName: string) => { const coloredMessage = `${logIcons.package} ${message}: ${plugins.consolecolor.coloredString(packageName, 'blue', 'white')}`; logger.log('info', coloredMessage); }; // Helper function for build-related messages export const logBuild = (message: string) => { const coloredMessage = `${logIcons.build} ${plugins.consolecolor.coloredString(message, 'cyan')}`; logger.log('info', coloredMessage); }; // Helper function for publish-related messages export const logPublish = (message: string) => { const coloredMessage = `${logIcons.publish} ${plugins.consolecolor.coloredString(message, 'green')}`; logger.log('info', coloredMessage); }; // Create a visual separator for different phases export const logSeparator = () => { const separator = plugins.consolecolor.coloredString('━'.repeat(60), 'cyan'); console.log(separator); }; // Create a header for major sections export const logHeader = (title: string) => { logSeparator(); const header = plugins.consolecolor.coloredString(` ${title.toUpperCase()} `, 'white', 'blue'); console.log(header); logSeparator(); }; // Helper for indicating ongoing operations export const logOngoing = (text: string) => { const spinnerIcon = plugins.consolecolor.coloredString('⟳', 'cyan'); const coloredMessage = `${spinnerIcon} ${plugins.consolecolor.coloredString(text, 'cyan')}`; logger.log('info', coloredMessage); }; // Progress indicator helper export const logProgress = (current: number, total: number, item: string) => { const percentage = Math.round((current / total) * 100); const progressBar = '█'.repeat(Math.floor(percentage / 5)) + '░'.repeat(20 - Math.floor(percentage / 5)); const coloredProgress = plugins.consolecolor.coloredString( `[${progressBar}] ${percentage}% - ${item}`, percentage === 100 ? 'green' : 'blue' ); logger.log('info', coloredProgress); };