diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm index 2ea208b2553..6a9618d5461 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm @@ -1180,6 +1180,10 @@ namespace facebook { return static_cast(turboModule).invokeObjCMethod(rt, PromiseKind, "prefetchImage", @selector(prefetchImage:resolve:reject:), args, count); } + static facebook::jsi::Value __hostFunction_NativeImageLoaderSpecJSI_queryCache(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, PromiseKind, "queryCache", @selector(queryCache:resolve:reject:), args, count); + } + NativeImageLoaderSpecJSI::NativeImageLoaderSpecJSI(id instance, std::shared_ptr jsInvoker) : ObjCTurboModule("ImageLoader", instance, jsInvoker) { @@ -1194,6 +1198,9 @@ namespace facebook { methodMap_["prefetchImage"] = MethodMetadata {1, __hostFunction_NativeImageLoaderSpecJSI_prefetchImage}; + methodMap_["queryCache"] = MethodMetadata {1, __hostFunction_NativeImageLoaderSpecJSI_queryCache}; + + } diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h index d63adc37b0d..87f92a51b03 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h @@ -1156,6 +1156,9 @@ namespace JS { - (void)prefetchImage:(NSString *)uri resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject; +- (void)queryCache:(NSArray *)uris + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject; @end namespace facebook { diff --git a/Libraries/Image/NativeImageLoader.js b/Libraries/Image/NativeImageLoader.js index 6b115c290f7..be3d2a02544 100644 --- a/Libraries/Image/NativeImageLoader.js +++ b/Libraries/Image/NativeImageLoader.js @@ -22,6 +22,9 @@ export interface Spec extends TurboModule { headers: {[string]: string}, ) => Promise<$ReadOnly<{width: number, height: number}>>; +prefetchImage: (uri: string) => Promise; + +queryCache: ( + uris: Array, + ) => Promise<{[string]: 'memory' | 'disk' | 'disk/memory'}>; } export default (TurboModuleRegistry.getEnforcing('ImageLoader'): Spec); diff --git a/React/CoreModules/RCTImageLoader.mm b/React/CoreModules/RCTImageLoader.mm index 47e5301bd50..356ffd640f2 100644 --- a/React/CoreModules/RCTImageLoader.mm +++ b/React/CoreModules/RCTImageLoader.mm @@ -996,6 +996,12 @@ RCT_EXPORT_METHOD(prefetchImage:(NSString *)uri }]; } +RCT_EXPORT_METHOD(queryCache:(NSArray *)uris + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + resolve([self getImageCacheStatus:uris]); +} @end /**