/********************************************************************* | |
* NAN - Native Abstractions for Node.js | |
* | |
* Copyright (c) 2018 NAN contributors | |
* | |
* MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md> | |
********************************************************************/ | |
namespace imp { | |
template<typename T> struct ToFactoryBase { | |
typedef MaybeLocal<T> return_t; | |
}; | |
template<typename T> struct ValueFactoryBase { typedef Maybe<T> return_t; }; | |
template<typename T> struct ToFactory; | |
template<> | |
struct ToFactory<v8::Function> : ToFactoryBase<v8::Function> { | |
static inline return_t convert(v8::Local<v8::Value> val) { | |
if (val.IsEmpty() || !val->IsFunction()) return MaybeLocal<v8::Function>(); | |
return MaybeLocal<v8::Function>(val.As<v8::Function>()); | |
} | |
}; | |
X(Boolean) | |
X(Number) | |
X(String) | |
X(Object) | |
X(Integer) | |
X(Uint32) | |
X(Int32) | |
X(bool) | |
X(double) | |
X(int64_t) | |
X(uint32_t) | |
X(int32_t) | |
} // end of namespace imp | |
template<typename T> | |
inline | |
typename imp::ToFactory<T>::return_t To(v8::Local<v8::Value> val) { | |
return imp::ToFactory<T>::convert(val); | |
} | |