Nan 2.0
This commit is contained in:
@@ -9,30 +9,57 @@
|
||||
#include "node_log.hpp"
|
||||
#include "node_request.hpp"
|
||||
|
||||
void RegisterModule(v8::Handle<v8::Object> exports) {
|
||||
NanScope();
|
||||
|
||||
node_mbgl::NodeMap::Init(exports);
|
||||
node_mbgl::NodeRequest::Init(exports);
|
||||
NAN_MODULE_INIT(RegisterModule) {
|
||||
node_mbgl::NodeMap::Init(target);
|
||||
node_mbgl::NodeRequest::Init(target);
|
||||
|
||||
// Exports Resource constants.
|
||||
auto ConstantProperty = static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete);
|
||||
auto resource = NanNew<v8::Object>();
|
||||
resource->ForceSet(NanNew("Unknown"), NanNew(mbgl::Resource::Unknown), ConstantProperty);
|
||||
resource->ForceSet(NanNew("Style"), NanNew(mbgl::Resource::Style), ConstantProperty);
|
||||
resource->ForceSet(NanNew("Source"), NanNew(mbgl::Resource::Source), ConstantProperty);
|
||||
resource->ForceSet(NanNew("Tile"), NanNew(mbgl::Resource::Tile), ConstantProperty);
|
||||
resource->ForceSet(NanNew("Glyphs"), NanNew(mbgl::Resource::Glyphs), ConstantProperty);
|
||||
resource->ForceSet(NanNew("SpriteImage"), NanNew(mbgl::Resource::SpriteImage), ConstantProperty);
|
||||
resource->ForceSet(NanNew("SpriteJSON"), NanNew(mbgl::Resource::SpriteJSON), ConstantProperty);
|
||||
exports->ForceSet(NanNew("Resource"), resource, ConstantProperty);
|
||||
v8::Local<v8::Object> resource = Nan::New<v8::Object>();
|
||||
|
||||
// Make the exported object inerhit from process.EventEmitter
|
||||
auto process = NanGetCurrentContext()->Global()->Get(NanNew("process"))->ToObject();
|
||||
auto EventEmitter = process->Get(NanNew("EventEmitter"))->ToObject();
|
||||
exports->SetPrototype(EventEmitter->Get(NanNew("prototype")));
|
||||
Nan::Set(resource,
|
||||
Nan::New("Unknown").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::Unknown));
|
||||
|
||||
mbgl::Log::setObserver(std::make_unique<node_mbgl::NodeLogObserver>(exports));
|
||||
Nan::Set(resource,
|
||||
Nan::New("Style").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::Style));
|
||||
|
||||
Nan::Set(resource,
|
||||
Nan::New("Source").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::Source));
|
||||
|
||||
Nan::Set(resource,
|
||||
Nan::New("Tile").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::Tile));
|
||||
|
||||
Nan::Set(resource,
|
||||
Nan::New("Glyphs").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::Glyphs));
|
||||
|
||||
Nan::Set(resource,
|
||||
Nan::New("SpriteImage").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::SpriteImage));
|
||||
|
||||
Nan::Set(resource,
|
||||
Nan::New("SpriteJSON").ToLocalChecked(),
|
||||
Nan::New(mbgl::Resource::SpriteJSON));
|
||||
|
||||
Nan::Set(target,
|
||||
Nan::New("Resource").ToLocalChecked(),
|
||||
resource);
|
||||
|
||||
// Make the exported object inherit from process.EventEmitter
|
||||
v8::Local<v8::Object> process = Nan::Get(
|
||||
Nan::GetCurrentContext()->Global(),
|
||||
Nan::New("process").ToLocalChecked()).ToLocalChecked()->ToObject();
|
||||
|
||||
v8::Local<v8::Object> EventEmitter = Nan::Get(process,
|
||||
Nan::New("EventEmitter").ToLocalChecked()).ToLocalChecked()->ToObject();
|
||||
|
||||
Nan::SetPrototype(target,
|
||||
Nan::Get(EventEmitter, Nan::New("prototype").ToLocalChecked()).ToLocalChecked());
|
||||
|
||||
mbgl::Log::setObserver(std::make_unique<node_mbgl::NodeLogObserver>(Nan::New(target)));
|
||||
}
|
||||
|
||||
NODE_MODULE(mapbox_gl_native, RegisterModule)
|
||||
|
||||
Reference in New Issue
Block a user