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