mirror of
https://github.com/status-im/react-native.git
synced 2025-01-13 19:15:05 +00:00
Expose ModuleRegistry on ExecutorDelegate
Differential Revision: D3944588 fbshipit-source-id: f8450a6735e1f6283c3bfe9d2ce883327172621c
This commit is contained in:
parent
6d175f2c25
commit
d7d89172c2
@ -7,6 +7,7 @@
|
||||
#include <fb/fbjni.h>
|
||||
|
||||
#include <cxxreact/ExecutorToken.h>
|
||||
#include <cxxreact/noncopyable.h>
|
||||
|
||||
using namespace facebook::jni;
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <folly/Memory.h>
|
||||
|
||||
#include <cxxreact/SystraceSection.h>
|
||||
#include <cxxreact/ModuleRegistry.h>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
@ -41,11 +42,12 @@ ProxyExecutor::ProxyExecutor(jni::global_ref<jobject>&& executorInstance,
|
||||
, m_delegate(delegate) {
|
||||
|
||||
folly::dynamic nativeModuleConfig = folly::dynamic::array;
|
||||
auto moduleRegistry = delegate->getModuleRegistry();
|
||||
|
||||
{
|
||||
SystraceSection s("collectNativeModuleDescriptions");
|
||||
for (const auto& name : delegate->moduleNames()) {
|
||||
nativeModuleConfig.push_back(delegate->getModuleConfig(name));
|
||||
for (const auto& name : moduleRegistry->moduleNames()) {
|
||||
nativeModuleConfig.push_back(moduleRegistry->getConfig(name));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,8 +11,6 @@
|
||||
|
||||
#include <folly/dynamic.h>
|
||||
|
||||
#include "JSModulesUnbundle.h"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
@ -27,7 +25,9 @@ enum {
|
||||
};
|
||||
|
||||
class JSExecutor;
|
||||
class JSModulesUnbundle;
|
||||
class MessageQueueThread;
|
||||
class ModuleRegistry;
|
||||
|
||||
struct MethodCallResult {
|
||||
folly::dynamic result;
|
||||
@ -44,8 +44,8 @@ class ExecutorDelegate {
|
||||
std::shared_ptr<MessageQueueThread> queue) = 0;
|
||||
virtual std::unique_ptr<JSExecutor> unregisterExecutor(JSExecutor& executor) = 0;
|
||||
|
||||
virtual std::vector<std::string> moduleNames() = 0;
|
||||
virtual folly::dynamic getModuleConfig(const std::string& name) = 0;
|
||||
virtual std::shared_ptr<ModuleRegistry> getModuleRegistry() = 0;
|
||||
|
||||
virtual void callNativeModules(
|
||||
JSExecutor& executor, folly::dynamic&& calls, bool isEndOfBatch) = 0;
|
||||
virtual MethodCallResult callSerializableNativeHook(
|
||||
|
@ -20,8 +20,9 @@
|
||||
#include "Platform.h"
|
||||
#include "SystraceSection.h"
|
||||
#include "Value.h"
|
||||
|
||||
#include "JSCSamplingProfiler.h"
|
||||
#include "JSModulesUnbundle.h"
|
||||
#include "ModuleRegistry.h"
|
||||
|
||||
#if defined(WITH_JSC_EXTRA_TRACING) || DEBUG
|
||||
#include "JSCTracing.h"
|
||||
@ -117,7 +118,7 @@ JSCExecutor::JSCExecutor(std::shared_ptr<ExecutorDelegate> delegate,
|
||||
|
||||
{
|
||||
SystraceSection s("collectNativeModuleNames");
|
||||
for (auto& name : delegate->moduleNames()) {
|
||||
for (auto& name : delegate->getModuleRegistry()->moduleNames()) {
|
||||
nativeModuleConfig.push_back(folly::dynamic::array(std::move(name)));
|
||||
}
|
||||
}
|
||||
@ -687,7 +688,7 @@ JSValueRef JSCExecutor::nativeRequireModuleConfig(
|
||||
}
|
||||
|
||||
std::string moduleName = Value(m_context, arguments[0]).toString().str();
|
||||
folly::dynamic config = m_delegate->getModuleConfig(moduleName);
|
||||
folly::dynamic config = m_delegate->getModuleRegistry()->getConfig(moduleName);
|
||||
return Value::fromDynamic(m_context, config);
|
||||
}
|
||||
|
||||
|
@ -41,15 +41,8 @@ public:
|
||||
return m_nativeToJs->unregisterExecutor(executor);
|
||||
}
|
||||
|
||||
std::vector<std::string> moduleNames() override {
|
||||
// If this turns out to be too expensive to run on the js thread,
|
||||
// we can compute it in the ctor, and just return std::move() it
|
||||
// here.
|
||||
return m_registry->moduleNames();
|
||||
}
|
||||
|
||||
folly::dynamic getModuleConfig(const std::string& name) override {
|
||||
return m_registry->getConfig(name);
|
||||
std::shared_ptr<ModuleRegistry> getModuleRegistry() override {
|
||||
return m_registry;
|
||||
}
|
||||
|
||||
void callNativeModules(
|
||||
|
Loading…
x
Reference in New Issue
Block a user