/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #import #import "RCTTurboModule.h" #import @protocol RCTTurboModuleManagerDelegate @optional - (NSArray *)getEagerInitModuleNames; - (NSArray *)getEagerInitMainQueueModuleNames; /** * Given a module name, return its actual class. If not provided, basic ObjC class lookup is performed. */ - (Class)getModuleClassFromName:(const char *)name; /** * Given a module class, provide an instance for it. If not provided, default initializer is used. */ - (id)getModuleInstanceFromClass:(Class)moduleClass; /** * Create an instance of a TurboModule without relying on any ObjC++ module instance. */ - (std::shared_ptr)getTurboModule:(const std::string &)name jsInvoker: (std::shared_ptr)jsInvoker; @end @interface RCTTurboModuleManager : NSObject - (instancetype)initWithBridge:(RCTBridge *)bridge delegate:(id)delegate jsInvoker:(std::shared_ptr)jsInvoker; - (void)installJSBindingWithRuntimeExecutor:(facebook::react::RuntimeExecutor)runtimeExecutor; - (void)invalidate; @end