From 00896a84a25143ddf1da3a62452a9a39164f6db0 Mon Sep 17 00:00:00 2001 From: Peter Piekarczyk Date: Wed, 29 Jul 2026 19:46:11 -0500 Subject: [PATCH] fix(ios): share URLCache across fetch transports --- .../react-native-nitro-fetch/ios/HybridNitroCronet.swift | 6 +----- .../ios/HybridNitroFetchClient.swift | 4 +--- .../react-native-nitro-fetch/ios/NitroURLSession.swift | 8 ++++++++ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/react-native-nitro-fetch/ios/HybridNitroCronet.swift b/packages/react-native-nitro-fetch/ios/HybridNitroCronet.swift index 1a0a614..52eab2c 100644 --- a/packages/react-native-nitro-fetch/ios/HybridNitroCronet.swift +++ b/packages/react-native-nitro-fetch/ios/HybridNitroCronet.swift @@ -6,11 +6,7 @@ class HybridNitroCronet: HybridNitroCronetSpec { private static let session: URLSession = { let config = URLSessionConfiguration.default config.requestCachePolicy = .useProtocolCachePolicy - config.urlCache = URLCache( - memoryCapacity: 32 * 1024 * 1024, - diskCapacity: 100 * 1024 * 1024, - diskPath: "nitrofetch_urlcache" - ) + config.urlCache = NitroURLCache.shared return NitroURLSession.make(configuration: config) }() diff --git a/packages/react-native-nitro-fetch/ios/HybridNitroFetchClient.swift b/packages/react-native-nitro-fetch/ios/HybridNitroFetchClient.swift index 9eb4689..cbe7035 100644 --- a/packages/react-native-nitro-fetch/ios/HybridNitroFetchClient.swift +++ b/packages/react-native-nitro-fetch/ios/HybridNitroFetchClient.swift @@ -101,9 +101,7 @@ final class HybridNitroFetchClient: HybridNitroFetchClientSpec { private static let session: URLSession = { let config = URLSessionConfiguration.default config.requestCachePolicy = .useProtocolCachePolicy - config.urlCache = URLCache(memoryCapacity: 32 * 1024 * 1024, - diskCapacity: 100 * 1024 * 1024, - diskPath: "nitrofetch_urlcache") + config.urlCache = NitroURLCache.shared return NitroURLSession.make(configuration: config) }() diff --git a/packages/react-native-nitro-fetch/ios/NitroURLSession.swift b/packages/react-native-nitro-fetch/ios/NitroURLSession.swift index 7296e4f..cff0643 100644 --- a/packages/react-native-nitro-fetch/ios/NitroURLSession.swift +++ b/packages/react-native-nitro-fetch/ios/NitroURLSession.swift @@ -3,6 +3,14 @@ import Foundation /// Keeps authentication challenges observable by delegate-based networking middleware. private final class NitroURLSessionDelegate: NSObject, URLSessionDelegate {} +enum NitroURLCache { + static let shared = URLCache( + memoryCapacity: 32 * 1024 * 1024, + diskCapacity: 100 * 1024 * 1024, + diskPath: "nitrofetch_urlcache" + ) +} + enum NitroURLSession { static let shared = make(configuration: .default)