cdi-mcp-server
Version:
CDI (Chemical Distribution Institute) MCP Server for retrieving and processing maritime inspection data with full CDI authentication support
50 lines • 1.86 kB
JavaScript
import { promises as fs } from 'fs';
import path from 'path';
export function timestampedFilename(prefix, ext = '.png') {
const screenshotsDir = path.join(process.cwd(), 'screenshots');
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').replace('T', '_').split('.')[0] + 'Z';
return path.join(screenshotsDir, `${prefix}_${timestamp}${ext}`);
}
export function timestampedFilenamePdf(prefix, ext = '.pdf') {
const downloadsDir = path.join(process.cwd(), 'downloads');
return path.join(downloadsDir, `${prefix}${ext}`);
}
export async function ensureDirectoryExists(dirPath) {
try {
await fs.access(dirPath);
}
catch {
await fs.mkdir(dirPath, { recursive: true });
}
}
export function cleanVesselName(vesselName) {
return vesselName
.replace(/[/\\:]/g, '-')
.replace(/[<>:"/|?*]/g, '')
.trim();
}
export function formatDate(dateStr) {
try {
// Try to parse DD-MM-YYYY format
const parts = dateStr.split('-');
if (parts.length === 3) {
const day = parts[0].padStart(2, '0');
const month = parts[1].padStart(2, '0');
const year = parts[2];
const date = new Date(`${year}-${month}-${day}`);
return date.toISOString().split('T')[0]; // Return YYYY-MM-DD format
}
// If parsing fails, return current date
return new Date().toISOString().split('T')[0];
}
catch (error) {
// If date parsing fails, use current date
return new Date().toISOString().split('T')[0];
}
}
export function generatePdfFilename(vesselName, imo, inspectionDate) {
const cleanName = cleanVesselName(vesselName);
const formattedDate = formatDate(inspectionDate);
return `${cleanName}_${imo}_${formattedDate}.pdf`;
}
//# sourceMappingURL=utils.js.map