blob: 09250b784375898d1f92bc052b1d8b2c3e869184 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <node.h>
#include <nan.h>
#include "node_file_source.hpp"
#include "node_map.hpp"
#include "node_log.hpp"
#include "node_request.hpp"
#include "compress_png.hpp"
void RegisterModule(v8::Handle<v8::Object> exports) {
NanScope();
node_mbgl::NodeFileSource::Init(exports);
node_mbgl::NodeMap::Init(exports);
node_mbgl::NodeRequest::Init(exports);
node_mbgl::InitCompressPNG(exports);
// Exports Resource constants.
auto ConstantProperty = static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete);
auto resource = v8::Object::New();
resource->ForceSet(NanNew("Unknown"), NanNew(mbgl::Resource::Unknown), ConstantProperty);
resource->ForceSet(NanNew("Tile"), NanNew(mbgl::Resource::Tile), ConstantProperty);
resource->ForceSet(NanNew("Glyphs"), NanNew(mbgl::Resource::Glyphs), ConstantProperty);
resource->ForceSet(NanNew("Image"), NanNew(mbgl::Resource::Image), ConstantProperty);
resource->ForceSet(NanNew("JSON"), NanNew(mbgl::Resource::JSON), ConstantProperty);
exports->ForceSet(NanNew("Resource"), resource, ConstantProperty);
// 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")));
mbgl::Log::setObserver(mbgl::util::make_unique<node_mbgl::NodeLogObserver>(exports));
}
NODE_MODULE(mapbox_gl_native, RegisterModule)
|