smart-filename
Version:
NPM package designed for handling filenames safely and effectively. It provides utilities to format, sanitize, validate, truncate, and extract file extensions while ensuring compatibility across different operating systems. This package is particularly us
18 lines (12 loc) • 573 B
JavaScript
function truncateFilename(filename, maxLength = 50) {
if (typeof filename !== 'string' || filename.length <= maxLength) return filename;
const parts = filename.split('.');
if (parts.length < 2) return filename.slice(0, maxLength); // No extension case
const ext = parts.pop(); // Extract extension
let name = parts.join('.'); // Remaining name part
if (name.length > maxLength - ext.length - 1) {
name = name.slice(0, maxLength - ext.length - 1);
}
return `${name}.${ext}`;
}
module.exports = truncateFilename;