Package Exports
- node-addon-api
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-addon-api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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.
To use N-API in a native module:
- Add a dependency on this package to
package.json
:
"dependencies": {
"node-addon-api": "github:nodejs/node-addon-api",
}
- 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\")"],
- Ensure C++ exceptions are enabled in
binding.gyp
. The N-API C++ wrapper classes use exceptions for error-handling; the base ABI-stable C APIs do not.
'cflags!': [ '-fno-exceptions' ],
'cflags_cc!': [ '-fno-exceptions' ],
'xcode_settings': { 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES' },
'msvs_settings': {
'VCCLCompilerTool': { 'ExceptionHandling': 1 },
},
- Include
napi.h
in the native module code. To ensure only ABI-stable APIs are used, DO NOT includenode.h
,nan.h
, orv8.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.
See the main project README or preliminary documentation for more details about N-API.
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 |