use path parser to split filename and extension

and add fix to avoid extra dot when extension is undefined.
This commit is contained in:
Abhinav 2022-08-08 22:00:35 +05:30
parent 86aa706c01
commit 79c7265ec7

View file

@ -100,12 +100,17 @@ function getUniqueSavePath(filename: string, directory: string): string {
let n = 0;
let exists;
let uniqueFileSavePath;
const [filenameWithoutExtension, extension] =
splitFilenameAndExtension(filename);
const { name: filenameWithoutExtension, ext: extension } =
path.parse(filename);
do {
let fileNameWithNumberedSuffix;
if (n > 0) {
fileNameWithNumberedSuffix = `${filenameWithoutExtension}(${n}).${extension}`;
fileNameWithNumberedSuffix = [
`${filenameWithoutExtension}(${n})`,
extension,
]
.filter((x) => x) // filters out undefined/null values
.join('.');
} else {
fileNameWithNumberedSuffix = filename;
}
@ -115,13 +120,3 @@ function getUniqueSavePath(filename: string, directory: string): string {
} while (exists);
return uniqueFileSavePath;
}
function splitFilenameAndExtension(filename: string): [string, string] {
const lastDotPosition = filename.lastIndexOf('.');
if (lastDotPosition === -1) return [filename, null];
else
return [
filename.slice(0, lastDotPosition),
filename.slice(lastDotPosition + 1),
];
}