X Tutup
The Wayback Machine - https://web.archive.org/web/20201014044035/https://github.com/digitalinfinity/node-addon-api
Skip to content
master
Go to file
Code
This branch is 292 commits behind nodejs:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Node.js API (N-API) Package

This package contains header-only C++ wrapper classes for the ABI-stable Node.js API (N-API), along with library code that enables backward-compatibility with use with older versions of Node.js that do not have N-API built-in.

API Documentation

Getting Started

To use N-API in a native module:

  1. Add a dependency on this package to package.json:
  "dependencies": {
    "node-addon-api": "0.3.3",
  }
  1. Reference this package's include directory and gyp file in binding.gyp:
  'include_dirs': ["<!@(node -p \"require('node-addon-api').include\")"],
  'dependencies': ["<!(node -p \"require('node-addon-api').gyp\")"],
  1. Decide whether the package will enable C++ exceptions in the N-API wrapper. The base ABI-stable C APIs do not throw or handle C++ exceptions, but the N-API C++ wrapper classes may optionally integrate C++ and JavaScript exception-handling . To enable that capability, C++ exceptions must be enabled in binding.gyp:
  'cflags!': [ '-fno-exceptions' ],
  'cflags_cc!': [ '-fno-exceptions' ],
  'xcode_settings': {
    'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
    'CLANG_CXX_LIBRARY': 'libc++',
    'MACOSX_DEPLOYMENT_TARGET': '10.7',
  },
  'msvs_settings': {
    'VCCLCompilerTool': { 'ExceptionHandling': 1 },
  },

Alternatively, disable use of C++ exceptions in N-API:

  'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ],
  1. Include napi.h in the native module code. To ensure only ABI-stable APIs are used, DO NOT include node.h, nan.h, or v8.h.
#include "napi.h"

At build time, the N-API back-compat library code will be used only when the targeted node version does not have N-API built-in.

Conversion Tool

To make the migration to node-addon-api easier, we have provided a script to help complete the steps listed above. To use the conversion script:

  1. Go to your module directory
cd [module_path]
  1. Install node-addon-api module
npm install node-addon-api
  1. Run node-addon-api conversion script
node ./node_modules/node-addon-api/tools/conversion.js ./
  1. While this script makes conversion easier, it still cannot fully convert the module. The next step is to try to build the module and complete the remaining conversions necessary to allow it to compile and pass all of the module's tests.

WG Members / Collaborators

Name GitHub link
Anna Henningsen addaleax
Arunesh Chandra aruneshchandra
Benjamin Byholm kkoopa
Gabriel Schulhof gabrielschulhof
Hitesh Kanwathirtha digitalinfinity
Jason Ginchereau jasongin
Michael Dawson mhdawson
Sampson Gao sampsongao
Taylor Woll boingoing

About

No description, website, or topics provided.

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.
X Tutup