diff --git a/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.cpp b/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.cpp index 680c0afd3..8cd94d149 100644 --- a/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.cpp +++ b/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.cpp @@ -81,6 +81,24 @@ static const std::string componentNameByReactViewName(std::string viewName) { return viewName; } +const ComponentDescriptor &ComponentDescriptorRegistry::at( + ComponentName componentName) const { + auto unifiedComponentName = componentNameByReactViewName(componentName); + + auto it = _registryByName.find(unifiedComponentName); + if (it == _registryByName.end()) { + throw std::invalid_argument( + ("Unable to find componentDescriptor for " + unifiedComponentName) + .c_str()); + } + return *it->second; +} + +const ComponentDescriptor &ComponentDescriptorRegistry::at( + ComponentHandle componentHandle) const { + return *_registryByHandle.at(componentHandle); +} + SharedShadowNode ComponentDescriptorRegistry::createNode( Tag tag, const std::string &viewName, diff --git a/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.h b/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.h index 6629ad156..83a119713 100644 --- a/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.h +++ b/ReactCommon/fabric/uimanager/ComponentDescriptorRegistry.h @@ -25,6 +25,9 @@ class ComponentDescriptorRegistry { void registerComponentDescriptor( SharedComponentDescriptor componentDescriptor); + const ComponentDescriptor &at(ComponentName componentName) const; + const ComponentDescriptor &at(ComponentHandle componentHandle) const; + const SharedComponentDescriptor operator[]( const SharedShadowNode &shadowNode) const; const SharedComponentDescriptor operator[](