105 lines
4.2 KiB
TypeScript
105 lines
4.2 KiB
TypeScript
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);
|
||
};
|