Files
internify-be/src/helpers/utils/slug.js
T
2026-06-23 22:07:21 +07:00

31 lines
514 B
JavaScript

function slugify(value, fallback = 'item') {
if (!value || typeof value !== 'string') {
return fallback;
}
let slug = value
.toString()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.toLowerCase()
.trim()
.replace(/[^a-z0-9\s-]/g, '')
.replace(/\s+/g, '-')
.replace(/-+/g, '-')
.replace(/^-|-$/g, '');
if (!slug) {
slug = fallback;
}
if (/^\d+$/.test(slug)) {
slug = `${fallback}-${slug}`;
}
return slug;
}
module.exports = {
slugify,
};