#ifndef __COMMON_NODE_H__ #define __COMMON_NODE_H__ #include #include #include #define NODE_INIT_OBJECT(name, function) \ do { \ auto obj = Napi::Object::New(env); \ function(env, obj); \ exports.Set(Napi::String::New(env, #name), obj); \ } while (0) inline uint64_t __node_ptr_of__(Napi::Value value) { bool lossless; return value.As().Uint64Value(&lossless); } #define NODE_PTR_OF(type, value) (reinterpret_cast(__node_ptr_of__(value))) inline void *dataFromTypedArray(const Napi::Value &val, size_t &bytes) { auto arr = val.As(); auto data = static_cast(arr.ArrayBuffer().Data()); bytes = arr.ByteLength(); return static_cast(data + arr.ByteOffset()); } #endif