Expose ModuleRegistry on ExecutorDelegate

Differential Revision: D3944588

fbshipit-source-id: f8450a6735e1f6283c3bfe9d2ce883327172621c
This commit is contained in:
Pieter De Baets
2016-10-03 05:07:41 -07:00
committed by Facebook Github Bot
parent 6d175f2c25
commit d7d89172c2
5 changed files with 15 additions and 18 deletions

View File

@@ -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(

View File

@@ -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);
}

View File

@@ -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(