Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Node.js API (NAPI) C++ Wrapper
# Node.js API (N-API) Package

This repo contains header-only C++ wrapper classes for the C APIs for the ABI Stable Node API project (NAPI).
This package contains header-only C++ wrapper classes for the ABI-stable
Node.js API (N-API).

See the [main project README](https://github.com/nodejs/abi-stable-node/blob/doc/README.md) for more details.
To use these headers in a native module:
1. Add a dependency on this package to `package.json`.
2. Reference this package's include directory in `binding.gyp`:
```gyp
{
'target_name': 'example_module',
'include_dirs': ["<!(node -p \"require('node-api').include\")"],
}
```

Eventually this package will also contain library code that enables
backward-compatibility with use with older versions of Node.js that do
not have N-API built-in.

See the [main project README](
https://github.com/nodejs/abi-stable-node/blob/doc/README.md)
for more details.
7 changes: 7 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const include = __dirname;
const isNodeApiBuiltin = process.versions.modules >= 52;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a story for versioning N-API or do we always just provide whichever version is provided by the napi header/cc?

Copy link
Member Author

@jasongin jasongin Mar 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For versions of node without N-API built-in, the N-API version will be the same as the node-api package version. For versions of node with N-API built-in, the N-API version will be the same as the node version. It's tricky because the former is determined at build time, while the latter is determined at run-time. This is an area we know we need to further define and document the behavior and best practices for native module developers.


module.exports = {
include: include,
isNodeApiBuiltin: isNodeApiBuiltin,
};
23 changes: 23 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"bugs": {
"url": "https://github.com/nodejs/node-api/issues"
},
"dependencies": {},
"description": "Node.js API (N-API)",
"devDependencies": {
},
"directories": {},
"homepage": "https://github.com/nodejs/node-api",
"license": "MIT",
"main": "index.js",
"name": "node-api",
"optionalDependencies": {},
"readme": "README.md",
"repository": {
"type": "git",
"url": "git://github.com/nodejs/node-api.git"
},
"scripts": {
},
"version": "0.1.0"
}