Atlas-Launcher/source/javascript/module/AtlasJsModule.hpp

34 lines
749 B
C++

#pragma once
#include <QObject>
#include <QJSValue>
#include "_base/BaseJsModule.hpp"
class AtlasJsModule : public QObject {
Q_OBJECT
public:
explicit AtlasJsModule(QJSEngine* 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);
/**
* Get the version of the Atlas Javascript engine
* @return the Atlas version
*/
Q_INVOKABLE static QJSValueList getVersion();
private:
/// the parent JavaScript engine
QJSEngine* engine;
/// the submodules contained in this module
std::map<QString, std::shared_ptr<BaseJsModule>> submodules;
};