aboutsummaryrefslogtreecommitdiff
path: root/test/addons-napi/7_factory_wrap/binding.cc
blob: d98132457875a15157b12ff67c3407cba2e819b1 (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
#include "myobject.h"
#include "../common.h"

napi_value CreateObject(napi_env env, napi_callback_info info) {
  size_t argc = 1;
  napi_value args[1];
  NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, nullptr, nullptr));

  napi_value instance;
  NAPI_CALL(env, MyObject::NewInstance(env, args[0], &instance));

  return instance;
}

napi_value Init(napi_env env, napi_value exports) {
  NAPI_CALL(env, MyObject::Init(env));

  NAPI_CALL(env,
      // NOLINTNEXTLINE (readability/null_usage)
      napi_create_function(env, "exports", -1, CreateObject, NULL, &exports));
  return exports;
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)