#pragma once #include #include class AtlasJsEngine; class BaseJsModule; class AtlasJsModule : public QObject { Q_OBJECT public: explicit AtlasJsModule(AtlasJsEngine* engine, QObject* parent = nullptr); /** * Import an Atlas submodule * @param name the name of the module to import * @return the module */ Q_INVOKABLE QJSValue require(const QString& name) const; /** * Get the version of the Atlas Javascript engine * @return the Atlas version */ Q_INVOKABLE static QList getVersion(); private: /// the parent JavaScript engine AtlasJsEngine* engine; /// the submodules contained in this module std::map> submodules; };