1
- #include " utils.hpp"
1
+ // #include "utils.hpp"
2
2
#include " mapnik_logger.hpp"
3
3
#include < mapnik/debug.hpp>
4
4
5
5
Napi::FunctionReference Logger::constructor;
6
6
7
+ Napi::Object Logger::Initialize (Napi::Env env, Napi::Object exports)
8
+ {
9
+ Napi::Function func = DefineClass (env, " Logger" , {
10
+ StaticMethod<&Logger::get_severity>(" getSeverity" ),
11
+ StaticMethod<&Logger::set_severity>(" setSeverity" ),
12
+ StaticValue (" NONE" , Napi::Number::New (env, mapnik::logger::severity_type::none), napi_enumerable),
13
+ StaticValue (" ERROR" , Napi::Number::New (env, mapnik::logger::severity_type::error), napi_enumerable),
14
+ StaticValue (" DEBUG" , Napi::Number::New (env, mapnik::logger::severity_type::debug), napi_enumerable),
15
+ StaticValue (" WARN" , Napi::Number::New (env, mapnik::logger::severity_type::warn), napi_enumerable)
16
+ });
17
+ // What about booleans like:
18
+ // ENABLE_STATS
19
+ // ENABLE_LOG
20
+ // DEFAULT_LOG_SEVERITY
21
+ // RENDERING_STATS
22
+ // DEBUG
23
+ constructor = Napi::Persistent (func);
24
+ constructor.SuppressDestruct ();
25
+ exports.Set (" Logger" , func);
26
+ return exports;
27
+ }
28
+
7
29
/* *
8
30
* **`mapnik.Logger`**
9
31
*
@@ -15,39 +37,12 @@ Napi::FunctionReference Logger::constructor;
15
37
* var log = mapnik.Logger.get_severity();
16
38
* console.log(log); // 3
17
39
*/
18
- void Logger::Initialize (Napi::Object target) {
19
- Napi::HandleScope scope (env);
20
-
21
- Napi::FunctionReference lcons = Napi::Function::New (env, Logger::New);
22
-
23
- lcons->SetClassName (Napi::String::New (env, " Logger" ));
24
-
25
- // Static methods
26
- Napi::SetMethod (Napi::GetFunction (lcons).As <Napi::Object>(), " getSeverity" , Logger::get_severity);
27
- Napi::SetMethod (Napi::GetFunction (lcons).As <Napi::Object>(), " setSeverity" , Logger::set_severity);
28
-
29
- // Constants
30
- NODE_MAPNIK_DEFINE_CONSTANT (Napi::GetFunction (lcons)," NONE" ,mapnik::logger::severity_type::none);
31
- NODE_MAPNIK_DEFINE_CONSTANT (Napi::GetFunction (lcons)," ERROR" ,mapnik::logger::severity_type::error);
32
- NODE_MAPNIK_DEFINE_CONSTANT (Napi::GetFunction (lcons)," DEBUG" ,mapnik::logger::severity_type::debug);
33
- NODE_MAPNIK_DEFINE_CONSTANT (Napi::GetFunction (lcons)," WARN" ,mapnik::logger::severity_type::warn);
34
-
35
- // What about booleans like:
36
- // ENABLE_STATS
37
- // ENABLE_LOG
38
- // DEFAULT_LOG_SEVERITY
39
- // RENDERING_STATS
40
- // DEBUG
41
-
42
- // Not sure if needed...
43
- (target).Set (Napi::String::New (env, " Logger" ), Napi::GetFunction (lcons));
44
- constructor.Reset (lcons);
45
-
46
- }
47
40
48
- Napi::Value Logger::New (Napi::CallbackInfo const & info){
41
+ Logger::Logger (Napi::CallbackInfo const & info)
42
+ : Napi::ObjectWrap<Logger>(info)
43
+ {
44
+ Napi::Env env = info.Env ();
49
45
Napi::Error::New (env, " a mapnik.Logger cannot be created directly - rather you should ...." ).ThrowAsJavaScriptException ();
50
- return env.Null ();
51
46
}
52
47
53
48
/* *
@@ -57,9 +52,11 @@ Napi::Value Logger::New(Napi::CallbackInfo const& info){
57
52
* @static
58
53
* @returns {number} severity level
59
54
*/
60
- Napi::Value Logger::get_severity (Napi::CallbackInfo const & info){
55
+ Napi::Value Logger::get_severity (Napi::CallbackInfo const & info)
56
+ {
57
+ Napi::Env env = info.Env ();
61
58
int severity = mapnik::logger::instance ().get_severity ();
62
- return Napi::New (env, severity);
59
+ return Napi::Number:: New (env, severity);
63
60
}
64
61
65
62
/* *
@@ -73,13 +70,16 @@ Napi::Value Logger::get_severity(Napi::CallbackInfo const& info){
73
70
* @param {number} severity - severity level
74
71
* @returns {number} severity level
75
72
*/
76
- Napi::Value Logger::set_severity (Napi::CallbackInfo const & info){
77
- if (info.Length () != 1 || !info[0 ].IsNumber ()) {
73
+ Napi::Value Logger::set_severity (Napi::CallbackInfo const & info)
74
+ {
75
+ Napi::Env env = info.Env ();
76
+ if (info.Length () != 1 || !info[0 ].IsNumber ())
77
+ {
78
78
Napi::TypeError::New (env, " requires a severity level parameter" ).ThrowAsJavaScriptException ();
79
- return env.Null ();
79
+ return env.Undefined ();
80
80
}
81
81
82
82
int severity = info[0 ].As <Napi::Number>().Int32Value ();
83
83
mapnik::logger::instance ().set_severity (static_cast <mapnik::logger::severity_type>(severity));
84
- return ;
84
+ return env. Undefined () ;
85
85
}
0 commit comments