// Copyright 2022-present 650 Industries. All rights reserved. #ifdef __cplusplus #import #import #import namespace jsi = facebook::jsi; @class EXAppContext; namespace expo { using SharedJSIObject = std::shared_ptr; using UniqueJSIObject = std::unique_ptr; class JSI_EXPORT ExpoModulesHostObject : public jsi::HostObject { public: ExpoModulesHostObject(EXAppContext *appContext); virtual ~ExpoModulesHostObject(); jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) override; void set(jsi::Runtime &, const jsi::PropNameID &name, const jsi::Value &value) override; std::vector getPropertyNames(jsi::Runtime &rt) override; private: EXAppContext *appContext; std::unordered_map modulesCache; }; // class ExpoModulesHostObject } // namespace expo #endif