import Cache import Foundation import SwiftyJSON struct CacheModel { static var shared = CacheModel() var urlBookmarksStorage: Storage? var videoStorage: Storage? init() { let urlBookmarksStorageConfig = DiskConfig(name: "URLBookmarks", expiry: .never) let urlBookmarksMemoryConfig = MemoryConfig(expiry: .never, countLimit: 100, totalCostLimit: 100) urlBookmarksStorage = try? Storage(diskConfig: urlBookmarksStorageConfig, memoryConfig: urlBookmarksMemoryConfig, transformer: TransformerFactory.forData()) let videoStorageConfig = DiskConfig(name: "VideoStorage", expiry: .never) let videoStorageMemoryConfig = MemoryConfig(expiry: .never, countLimit: 100, totalCostLimit: 100) let toData: (JSON) throws -> Data = { try $0.rawData() } let fromData: (Data) throws -> JSON = { try JSON(data: $0) } let jsonTransformer = Transformer(toData: toData, fromData: fromData) videoStorage = try? Storage(diskConfig: videoStorageConfig, memoryConfig: videoStorageMemoryConfig, transformer: jsonTransformer) } func removeAll() { try? videoStorage?.removeAll() try? urlBookmarksStorage?.removeAll() } }