diff --git a/.github/workflows/harness-android.yml b/.github/workflows/harness-android.yml index fdfb4d4..7a84ecb 100644 --- a/.github/workflows/harness-android.yml +++ b/.github/workflows/harness-android.yml @@ -55,10 +55,17 @@ on: paths: - ".github/workflows/harness-android.yml" - "example/android/**" - - "package/android/**" - - "package/ios/**" - - "package/src/**" - - "package/nitrogen/**" + - "packages/react-native-nitro-fetch/android/**" + - "packages/react-native-nitro-text-decoder/android/**" + - "packages/react-native-nitro-text-decoder/ios/**" + - "packages/react-native-nitro-websockets/android/**" + - "packages/react-native-nitro-websockets/ios/**" + - "packages/react-native-nitro-fetch/src/**" + - "packages/react-native-nitro-text-decoder/src/**" + - "packages/react-native-nitro-websockets/src/**" + - "packages/react-native-nitro-fetch/nitrogen/**" + - "packages/react-native-nitro-text-decoder/nitrogen/**" + - "packages/react-native-nitro-websockets/nitrogen/**" - "**/bun.lock" - "**/react-native.config.js" - "example/__tests__/**" diff --git a/.github/workflows/harness-ios.yml b/.github/workflows/harness-ios.yml index dbeb9fe..96dceda 100644 --- a/.github/workflows/harness-ios.yml +++ b/.github/workflows/harness-ios.yml @@ -47,9 +47,15 @@ on: paths: - ".github/workflows/harness-ios.yml" - "example/ios/**" - - "package/ios/**" - - "package/src/**" - - "package/nitrogen/**" + - "packages/react-native-nitro-fetch/ios/**" + - "packages/react-native-nitro-text-decoder/ios/**" + - "packages/react-native-nitro-websockets/ios/**" + - "packages/react-native-nitro-fetch/src/**" + - "packages/react-native-nitro-text-decoder/src/**" + - "packages/react-native-nitro-websockets/src/**" + - "packages/react-native-nitro-fetch/nitrogen/**" + - "packages/react-native-nitro-text-decoder/nitrogen/**" + - "packages/react-native-nitro-websockets/nitrogen/**" - "**/Podfile.lock" - "**/*.podspec" - "**/bun.lock" diff --git a/packages/react-native-nitro-fetch/ios/FetchCache.swift b/packages/react-native-nitro-fetch/ios/FetchCache.swift index 6e82f75..be68fba 100644 --- a/packages/react-native-nitro-fetch/ios/FetchCache.swift +++ b/packages/react-native-nitro-fetch/ios/FetchCache.swift @@ -25,17 +25,13 @@ final class FetchCache { } static func complete(_ key: String, with result: Result) { - var callbacks: [(Result) -> Void] = [] - queue.sync { - callbacks = pending[key] ?? [] - } queue.async(flags: .barrier) { - pending.removeValue(forKey: key) + let callbacks = pending.removeValue(forKey: key) ?? [] if case let .success(resp) = result { results[key] = CachedEntry(response: resp, timestampMs: Int64(Date().timeIntervalSince1970 * 1000)) } + callbacks.forEach { $0(result) } } - callbacks.forEach { $0(result) } } static func getResultIfFresh(_ key: String, maxAgeMs: Int64) -> NitroResponse? {