diff options
Diffstat (limited to 'platform/node/src')
-rw-r--r-- | platform/node/src/node_map.cpp | 13 | ||||
-rw-r--r-- | platform/node/src/node_map.hpp | 2 |
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; |