1 // Copyright © 2021-present 650 Industries, Inc. (aka Expo) 2 3 #pragma once 4 5 #include <jsi/jsi.h> 6 7 #include <memory> 8 9 namespace jsi = facebook::jsi; 10 11 namespace expo { 12 /** 13 * An interface for classes which wrap jsi::Object. 14 */ 15 class JSIObjectWrapper { 16 public: 17 /** 18 * @return a pointer to the underlying jsi::Object. 19 */ 20 virtual std::shared_ptr<jsi::Object> get() = 0; 21 }; 22 23 /** 24 * An interface for classes which wrap jsi::Value. 25 */ 26 class JSIValueWrapper { 27 public: 28 /** 29 * @return a pointer to the underlying jsi::Value. 30 */ 31 virtual std::shared_ptr<jsi::Value> get() = 0; 32 }; 33 } // namespace expo 34