44
55class Addon {
66 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)) {}
835 bool verbose = false ;
36+ Napi::FunctionReference VerboseIndicator;
937 ~Addon () {
1038 if (verbose) {
1139 fprintf (stderr, " addon_data: Addon::~Addon\n " );
@@ -14,16 +42,15 @@ class Addon {
1442};
1543
1644static 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 ({});
1946}
2047
2148static void Setter (const Napi::CallbackInfo& info) {
2249 info.Env ().GetInstanceData <Addon>()->verbose = info[0 ].As <Napi::Boolean>();
2350}
2451
2552Napi::Object InitAddonData (Napi::Env env) {
26- env.SetInstanceData (new Addon ());
53+ env.SetInstanceData (new Addon (env ));
2754 Napi::Object result = Napi::Object::New (env);
2855
2956 result.DefineProperties ({
0 commit comments