1.0.0 • Published 4 years ago

node_binding v1.0.0

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
4 years ago

Node Binding

This is a helper to bind c++ to nodejs using node-addon-api easily.

How to use

bazel

Please see examples.

node-gyp

Please see test.

Examples

Please don't do like below!

double CAdd(double arg0, double arg1) {
  return arg0 + arg1;
}

Napi::Value Add(const Napi::CallbackInfo& info) {
  Napi::Env env = info.Env();
  if (info.Length() < 2) {
    Napi::TypeError::New(env, "Wrong number of arguments").ThrowAsJavaScriptException();
    return env.Null();
  }
  if (!info[0].IsNumber() || !info[1].IsNumber()) {
    Napi::TypeError::New(env, "Wrong arguments").ThrowAsJavaScriptException();
    return env.Null();
  }
  double arg0 = info[0].As<Napi::Number>().DoubleValue();
  double arg1 = info[1].As<Napi::Number>().DoubleValue();
  Napi::Number num = Napi::Number::New(env, CAdd(arg0, arg1);
  return num;
}

Instead please do like below!

double CAdd(double arg0, double arg1) {
  return arg0 + arg1;
}

Napi::Value Add(const Napi::CallbackInfo& info) {
 return TypedCall(info, &CAdd);
}
1.0.0

4 years ago