From ac0b718f77648361d50642d47c69541042c1f38e Mon Sep 17 00:00:00 2001 From: diced Date: Sat, 18 Apr 2026 22:42:16 -0700 Subject: [PATCH] fix: date format #1056 --- src/lib/api/upload.ts | 6 ++++-- src/lib/uploader/formatFileName.ts | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib/api/upload.ts b/src/lib/api/upload.ts index dd3b87f3..6c044410 100644 --- a/src/lib/api/upload.ts +++ b/src/lib/api/upload.ts @@ -94,8 +94,10 @@ export async function getFilename( return { error: 'file with the same name already exists' }; } - while (existing && format === 'random') { - fileName = formatFileName(format, originalName); + let dateIncrement = 1; + + while (existing && (format === 'random' || format === 'date')) { + fileName = formatFileName(format, originalName, dateIncrement++); if (!fileName) return { error: 'invalid file name' }; fullFileName = `${fileName}${extension}`; diff --git a/src/lib/uploader/formatFileName.ts b/src/lib/uploader/formatFileName.ts index 0e9c806a..00f8a22e 100644 --- a/src/lib/uploader/formatFileName.ts +++ b/src/lib/uploader/formatFileName.ts @@ -7,12 +7,16 @@ import { sanitizeFilename } from '../fs'; import { randomCharacters } from '../random'; import { randomWords } from './randomWords'; -export function formatFileName(nameFormat: Config['files']['defaultFormat'], originalName?: string) { +export function formatFileName( + nameFormat: Config['files']['defaultFormat'], + originalName?: string, + dateIncrement?: number, +) { switch (nameFormat) { case 'random': return randomCharacters(config.files.length); case 'date': - return dayjs().format(config.files.defaultDateFormat); + return dayjs().format(config.files.defaultDateFormat) + (dateIncrement ? `-${dateIncrement}` : ''); case 'uuid': return randomUUID({ disableEntropyCache: true }); case 'name':