ts-logs
Version:
This package provide a skd for audit and manager logs in nodejs and express
61 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetFolderName = void 0;
/**
* @description Check if provided char is a letter of alphabet
* @param char as string
* @returns true if char is a letter of alphabet and false if not.
*/
const IsAlphaChar = (char) => {
const upper = char.toUpperCase();
const asciiCode = upper.charCodeAt(0);
return asciiCode <= 90 && asciiCode >= 65;
};
/**
* @description Check if provided char is a valid separator.
* @param char string as char
* @returns true if char is "-" and false if its not.
*/
const IsValidSeparator = (char) => {
const asciiCode = char.charCodeAt(0);
return asciiCode === 45;
};
/**
* @description Normalize folder name. Remove special chars and numbers.
* @param value folder name as string
* @returns normalized folder name
*/
const GetFolderName = (value) => {
if (typeof value !== 'string')
return 'default';
let result = value.trim().replace(/\s|_/g, '-');
result = result.replace(/[0-9]/g, '');
let i = 0;
let changed = '';
while (result[i]) {
const char = result[i];
if (IsAlphaChar(char) || IsValidSeparator(char)) {
changed = changed + char;
i++;
continue;
}
i++;
}
while (changed[0] && IsValidSeparator(changed[0])) {
changed = changed.slice(1);
}
while (changed && IsValidSeparator(changed.at(-1))) {
changed = changed.slice(0, changed.length - 1);
}
if (!changed)
return 'default';
while (/--/g.test(changed)) {
changed = changed.replace(/--/g, '-');
}
if (!changed)
return 'default';
return changed.toLowerCase();
};
exports.GetFolderName = GetFolderName;
exports.default = exports.GetFolderName;
//# sourceMappingURL=get-folder-name.util.js.map