1// Copyright 2018-present 650 Industries. All rights reserved. 2 3#import <ExpoModulesCore/EXRCTBridgeDelegateInterceptor.h> 4 5@implementation EXRCTBridgeDelegateInterceptor 6 7- (instancetype)initWithBridgeDelegate:(id<RCTBridgeDelegate>)bridgeDelegate interceptor:(id<RCTBridgeDelegate>)interceptor 8{ 9 if (self = [super init]) { 10 self.bridgeDelegate = bridgeDelegate; 11 self.interceptor = interceptor; 12 } 13 return self; 14} 15 16- (BOOL)conformsToProtocol:(Protocol *)protocol 17{ 18 return [self.bridgeDelegate conformsToProtocol:protocol]; 19} 20 21- (id)forwardingTargetForSelector:(SEL)selector 22{ 23 if ([self isInterceptedSelector:selector]) { 24 return self; 25 } 26 return self.bridgeDelegate; 27} 28 29- (BOOL)respondsToSelector:(SEL)selector 30{ 31 if ([self isInterceptedSelector:selector]) { 32 return YES; 33 } 34 return [self.bridgeDelegate respondsToSelector:selector]; 35} 36 37- (BOOL)isInterceptedSelector:(SEL)selector 38{ 39 if ([self.interceptor respondsToSelector:selector]) { 40 return YES; 41 } 42 return NO; 43} 44 45- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { 46 return [self.interceptor sourceURLForBridge:bridge]; 47} 48 49@end 50