/* * Copyright (c) Meta Platforms, Inc. and 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 #ifndef RCT_REMOVE_LEGACY_ARCH #include #include #include #include #include namespace facebook::react { /** * Holds and creates JS representations of the modules in ModuleRegistry */ class [[deprecated("This API will be removed along with the legacy architecture.")]] JSINativeModules { public: explicit JSINativeModules(std::shared_ptr moduleRegistry); jsi::Value getModule(jsi::Runtime &rt, const jsi::PropNameID &name); void reset(); private: std::optional m_genNativeModuleJS; std::shared_ptr m_moduleRegistry; std::unordered_map m_objects; std::optional createModule(jsi::Runtime &rt, const std::string &name); }; } // namespace facebook::react #endif // RCT_REMOVE_LEGACY_ARCH