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

36 lines
774 B
C++

#pragma once
#include <QObject>
#include <QJSValue>
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<QJSValue> getVersion();
private:
/// the parent JavaScript engine
AtlasJsEngine* engine;
/// the submodules contained in this module
std::map<QString, std::shared_ptr<BaseJsModule>> submodules;
};