浏览代码

Merge pull request #2374 from NeoSelf1/refactor/cache-file-name

Refactor cacheFileName method
Wei Wang 10 月之前
父节点
当前提交
002d14c2f8
共有 1 个文件被更改,包括 18 次插入15 次删除
  1. 18 15
      Sources/Cache/DiskStorage.swift

+ 18 - 15
Sources/Cache/DiskStorage.swift

@@ -372,22 +372,25 @@ public enum DiskStorage {
         }
         
         func cacheFileName(forKey key: String, forcedExtension: String? = nil) -> String {
-            // TODO: Bad code... Consider refactoring.
-            if config.usesHashedFileName {
-                let hashedKey = key.kf.sha256
-                if let ext = forcedExtension ?? config.pathExtension {
-                    return "\(hashedKey).\(ext)"
-                } else if config.autoExtAfterHashedFileName,
-                          let ext = forcedExtension ?? key.kf.ext {
-                    return "\(hashedKey).\(ext)"
-                }
-                return hashedKey
-            } else {
-                if let ext = forcedExtension ?? config.pathExtension {
-                    return "\(key).\(ext)"
-                }
-                return key
+            let baseName = config.usesHashedFileName ? key.kf.sha256 : key
+            
+            if let ext = fileExtension(key: key, forcedExtension: forcedExtension) {
+                return "\(baseName).\(ext)"
             }
+            
+            return baseName
+        }
+        
+        func fileExtension(key: String, forcedExtension: String?) -> String? {
+            if let ext = forcedExtension ?? config.pathExtension {
+                return ext
+            }
+        
+            if config.usesHashedFileName && config.autoExtAfterHashedFileName {
+                return key.kf.ext
+            }
+        
+            return nil
         }
 
         func allFileURLs(for propertyKeys: [URLResourceKey]) throws -> [URL] {