4
4
5
5
class Addon {
6
6
public:
7
- Addon () {}
7
+ class VerboseIndicator : public Napi ::ObjectWrap<VerboseIndicator> {
8
+ public:
9
+ VerboseIndicator (const Napi::CallbackInfo& info):
10
+ Napi::ObjectWrap<VerboseIndicator>(info) {
11
+ info.This ().As <Napi::Object>()[" verbose" ] =
12
+ Napi::Boolean::New (info.Env (),
13
+ info.Env ().GetInstanceData <Addon>()->verbose );
14
+ }
15
+
16
+ Napi::Value Getter (const Napi::CallbackInfo& info) {
17
+ return Napi::Boolean::New (info.Env (),
18
+ info.Env ().GetInstanceData <Addon>()->verbose );
19
+ }
20
+
21
+ void Setter (const Napi::CallbackInfo& info, const Napi::Value& val) {
22
+ info.Env ().GetInstanceData <Addon>()->verbose = val.As <Napi::Boolean>();
23
+ }
24
+
25
+ static Napi::FunctionReference Init (Napi::Env env) {
26
+ return Napi::Persistent (DefineClass (env, " VerboseIndicator" , {
27
+ InstanceAccessor<
28
+ &VerboseIndicator::Getter,
29
+ &VerboseIndicator::Setter>(" verbose" )
30
+ }));
31
+ }
32
+ };
33
+
34
+ Addon (Napi::Env env): VerboseIndicator(VerboseIndicator::Init(env)) {}
8
35
bool verbose = false ;
36
+ Napi::FunctionReference VerboseIndicator;
9
37
~Addon () {
10
38
if (verbose) {
11
39
fprintf (stderr, " addon_data: Addon::~Addon\n " );
@@ -14,16 +42,15 @@ class Addon {
14
42
};
15
43
16
44
static Napi::Value Getter (const Napi::CallbackInfo& info) {
17
- return Napi::Boolean::New (info.Env (),
18
- info.Env ().GetInstanceData <Addon>()->verbose );
45
+ return info.Env ().GetInstanceData <Addon>()->VerboseIndicator .New ({});
19
46
}
20
47
21
48
static void Setter (const Napi::CallbackInfo& info) {
22
49
info.Env ().GetInstanceData <Addon>()->verbose = info[0 ].As <Napi::Boolean>();
23
50
}
24
51
25
52
Napi::Object InitAddonData (Napi::Env env) {
26
- env.SetInstanceData (new Addon ());
53
+ env.SetInstanceData (new Addon (env ));
27
54
Napi::Object result = Napi::Object::New (env);
28
55
29
56
result.DefineProperties ({
0 commit comments