From e59ffd7f24fa1071b9a6972c0dc159054fa980ce Mon Sep 17 00:00:00 2001 From: stratumadev Date: Sat, 11 Oct 2025 00:18:55 +0200 Subject: [PATCH] updated cleanupFilename --- modules/module.helper.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/modules/module.helper.ts b/modules/module.helper.ts index 0d643dc..c5369d8 100644 --- a/modules/module.helper.ts +++ b/modules/module.helper.ts @@ -25,18 +25,26 @@ export default class Helper { static cleanupFilename(n: string) { /* eslint-disable no-useless-escape, no-control-regex */ - const fixingChar = '_'; - const illegalRe = /[\/\?<>\\:\*\|":]/g; + // Smart Replacer + const rep: Record = { + '/': '⧸', + '\\': '⧹', + ':': ':', + '*': '∗', + '?': '?', + '"': "'", + '<': '‹', + '>': '›' + }; + n = n.replace(/[\/\\:\*\?"<>\|]/g, (ch) => rep[ch] || '_'); + + // Old Replacer const controlRe = /[\x00-\x1f\x80-\x9f]/g; const reservedRe = /^\.+$/; const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i; const windowsTrailingRe = /[\. ]+$/; - return n - .replace(illegalRe, fixingChar) - .replace(controlRe, fixingChar) - .replace(reservedRe, fixingChar) - .replace(windowsReservedRe, fixingChar) - .replace(windowsTrailingRe, fixingChar); + + return n.replace(controlRe, '_').replace(reservedRe, '_').replace(windowsReservedRe, '_').replace(windowsTrailingRe, '_'); } static exec(