Преглед изворни кода

fix: guard against removing freshly created empty session dirs

CrytsalTraveler пре 4 месеци
родитељ
комит
0e4ca09603
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      src/hooks/image-hook.ts

+ 4 - 2
src/hooks/image-hook.ts

@@ -96,8 +96,10 @@ function cleanupAllSessions(saveDir: string): void {
 
 
   for (const dir of dirsToScan) {
   for (const dir of dirsToScan) {
     try {
     try {
+      let isEmpty = true;
       let allRemoved = true;
       let allRemoved = true;
       for (const f of readdirSync(dir)) {
       for (const f of readdirSync(dir)) {
+        isEmpty = false;
         const fp = join(dir, f);
         const fp = join(dir, f);
         try {
         try {
           if (now - statSync(fp).mtimeMs > maxAge) {
           if (now - statSync(fp).mtimeMs > maxAge) {
@@ -109,8 +111,8 @@ function cleanupAllSessions(saveDir: string): void {
           allRemoved = false;
           allRemoved = false;
         }
         }
       }
       }
-      // Remove empty session subdirectory
-      if (allRemoved) {
+      // Remove session subdirectory only if it had files and all were expired
+      if (!isEmpty && allRemoved) {
         try {
         try {
           rmdirSync(dir);
           rmdirSync(dir);
         } catch {}
         } catch {}