import fs from 'node:fs' import path from 'node:path' /** * Function to clean up unwanted characters from the output data. * @param {string} data - The raw data to be cleaned. * @returns {string} - The cleaned data. */ export const cleanData = (data: string) => { return data .replace(/--More--\s*BS\s*BS\s*BS\s*BS\s*BS\s*BS/g, '') .replace(/\s*--More--\s*/g, '') .replace(/\x1b\[[0-9;]*m/g, '') // Remove ANSI escape codes .replace(/\x08/g, '') .replace(/[^\x20-\x7E\r\n]/g, '') // Remove non-printable characters // .replace(/\r\n/g, '\n') } export function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)) } export function appendLog(output: string, stationId: number, lineNumber: number, port: number) { const date = new Date().toISOString().slice(0, 10).replace(/-/g, '') // YYYYMMDD const logDir = path.join('storage', 'system_logs') const logFile = path.join(logDir, `${date}-Station_${stationId}-Line_${lineNumber}_${port}.log`) // Ensure folder exists if (!fs.existsSync(logDir)) { fs.mkdirSync(logDir, { recursive: true }) } fs.appendFile(logFile, output, (err) => { if (err) { console.error('❌ Failed to write log:', err.message) } }) }