diff --git a/include/nodejs/json_v8_renderer.hpp b/include/nodejs/json_v8_renderer.hpp index 9572744c2..fa118ed52 100644 --- a/include/nodejs/json_v8_renderer.hpp +++ b/include/nodejs/json_v8_renderer.hpp @@ -29,7 +29,8 @@ struct V8Renderer for (const auto &keyValue : object.values) { Napi::Value child; - std::visit(V8Renderer(env, child), keyValue.second); + + visit(V8Renderer(env, child), keyValue.second); obj.Set(keyValue.first, child); } out = obj; @@ -41,7 +42,7 @@ struct V8Renderer for (auto i = 0u; i < array.values.size(); ++i) { Napi::Value child; - std::visit(V8Renderer(env, child), array.values[i]); + visit(V8Renderer(env, child), array.values[i]); a.Set(i, child); } out = a; @@ -53,6 +54,35 @@ struct V8Renderer void operator()(const osrm::json::Null &) const { out = env.Null(); } + private: + void visit(const V8Renderer &renderer, const osrm::json::Value &value) const + { + switch (value.index()) + { + case 0: + renderer(std::get(value)); + break; + case 1: + renderer(std::get(value)); + break; + case 2: + renderer(std::get(value)); + break; + case 3: + renderer(std::get(value)); + break; + case 4: + renderer(std::get(value)); + break; + case 5: + renderer(std::get(value)); + break; + case 6: + renderer(std::get(value)); + break; + } + } + private: const Napi::Env &env; Napi::Value &out;