summaryrefslogtreecommitdiff
path: root/platform/node
diff options
context:
space:
mode:
Diffstat (limited to 'platform/node')
-rw-r--r--platform/node/src/node_map.cpp13
-rw-r--r--platform/node/src/node_map.hpp2
2 files changed, 10 insertions, 5 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp
index d56d71ab6b..2beab1833f 100644
--- a/platform/node/src/node_map.cpp
+++ b/platform/node/src/node_map.cpp
@@ -3,8 +3,6 @@
#include "node_feature.hpp"
#include "node_conversion.hpp"
-#include <mbgl/map/projection_mode.hpp>
-#include <mbgl/util/exception.hpp>
#include <mbgl/renderer/renderer.hpp>
#include <mbgl/gl/headless_frontend.hpp>
#include <mbgl/style/conversion/source.hpp>
@@ -26,6 +24,7 @@
#include <mbgl/style/image.hpp>
#include <mbgl/style/light.hpp>
#include <mbgl/map/map_observer.hpp>
+#include <mbgl/util/exception.hpp>
#include <mbgl/util/premultiply.hpp>
#include <unistd.h>
@@ -54,8 +53,14 @@ static const char* releasedMessage() {
return "Map resources have already been released";
}
-void NodeMapObserver::onDidFailLoadingMap(std::exception_ptr error) {
- std::rethrow_exception(error);
+void NodeMapObserver::onDidFailLoadingMap(mbgl::MapLoadError error, const std::string& description) {
+ switch (error) {
+ case mbgl::MapLoadError::StyleParseError:
+ Nan::ThrowError(NodeMap::ParseError(description.c_str()));
+ break;
+ default:
+ Nan::ThrowError(description.c_str());
+ }
}
void NodeMap::Init(v8::Local<v8::Object> target) {
diff --git a/platform/node/src/node_map.hpp b/platform/node/src/node_map.hpp
index 2214035b17..9e3eb1ad12 100644
--- a/platform/node/src/node_map.hpp
+++ b/platform/node/src/node_map.hpp
@@ -22,7 +22,7 @@ class HeadlessFrontend;
namespace node_mbgl {
class NodeMapObserver : public mbgl::MapObserver {
- void onDidFailLoadingMap(std::exception_ptr) override;
+ void onDidFailLoadingMap(mbgl::MapLoadError, const std::string&) override;
};
class NodeMap;