#include "stdafx.h" #include #include namespace mssql { bool MutateJS::getbool(const Local query_object, const char* v) { const auto l = get(query_object, v); return as_boolean(l); } bool MutateJS::set_property_value(const Local& o, const Local& p, const Local& v) { return Nan::Set(o, p, v).ToChecked(); } Local MutateJS::get_property_as_value(const Local& o, const Local& v) { if ( o->IsUndefined() || o->IsNull()) { const nodeTypeFactory fact; return fact.null(); } const auto p = Nan::Get(o,v).ToLocalChecked(); return p; } static bool isUnDefined(const Local l) { return l->IsUndefined() || l->IsNull(); } int32_t MutateJS::getint32(const Local query_object, const char* v) { const auto l = get(query_object, v); if (!isUnDefined(l)) { return Nan::To(l).ToChecked(); } return 0; } bool MutateJS::as_boolean(const Local& as_val) { if (!isUnDefined(as_val)) { return Nan::To(as_val).ToChecked(); } return false; } int32_t MutateJS::getint32(const Local l) { const auto v = isUnDefined(l) ? 0 : Nan::To(l).ToChecked(); return v; } int64_t MutateJS::getint64(const Local query_object, const char* v) { const auto l = get(query_object, v); if (!isUnDefined(l)) { return Nan::To(l).ToChecked(); } return 0; } int64_t MutateJS::getint64(const Local l) { if (!isUnDefined(l)) { return Nan::To(l).ToChecked(); } return 0; } Local MutateJS::get_property_as_value(const Local& o, const char* v) { return get(o, v); } Local MutateJS::get(const Local o, const char* v) { if (isUnDefined(o)) { const nodeTypeFactory fact; return fact.null(); } const auto p = Nan::Get(o, Nan::New(v).ToLocalChecked()).ToLocalChecked(); return p; } }