node-addon-api
Advanced tools
Comparing version 1.7.1 to 2.0.0
# node-addon-api Changelog | ||
## 2019-11-21 Version 2.0.0, @NickNaso | ||
### Notable changes: | ||
#### API | ||
- Added `Napi::AsyncProgressWorker` api. | ||
- Added error checking on `Napi::ThreadSafeFunction::GetContext`. | ||
- Added copy constructor to `Napi::ThreadSafeFunction`. | ||
- Added `Napi::ThreadSafeFunction::Ref` and `Napi::ThreadSafeFunction::Unref` to `Napi::ThreadSafeFunction`. | ||
- Added `Napi::Object::AddFinalizer` method. | ||
- Use `napi_add_finalizer()` to attach data when building against N-API 5. | ||
- Added `Napi::Date` api. | ||
- Added `Napi::ObjectWrap::Finalize` method. | ||
#### Documentation | ||
- Added documentation for `Napi::AsyncProgressWorker`. | ||
- Improve `Napi::AsyncWorker` documentation. | ||
- Added documentation for `Napi::Object::AddFinalizer` method. | ||
- Improved documentation for `Napi::ThreadSafeFunction`. | ||
- Improved documentation about the usage of CMake as build tool. | ||
- Some minor corrections all over the documentation. | ||
#### TEST | ||
- Added test cases for `Napi::AsyncProgressWorker` api. | ||
- Added test cases for `Napi::Date` api. | ||
- Added test cases for new features added to `Napi::ThreadSafeFunction`. | ||
### Commmits | ||
* [[`c881168d49`](https://github.com/nodejs/node-addon-api/commit/c881168d49)] - **tsfn**: add error checking on GetContext (#583) (Kevin Eady) [#583](https://github.com/nodejs/node-addon-api/pull/583) | ||
* [[`24d75dd82f`](https://github.com/nodejs/node-addon-api/commit/24d75dd82f)] - Merge pull request #588 from NickNaso/add-asyncprogress-worker-readme (Nicola Del Gobbo) | ||
* [[`aa79e37b62`](https://github.com/nodejs/node-addon-api/commit/aa79e37b62)] - Merge pull request #587 from timrach/patch-1 (Nicola Del Gobbo) | ||
* [[`df75e08c2b`](https://github.com/nodejs/node-addon-api/commit/df75e08c2b)] - **tsfn**: support direct calls to underlying napi\_tsfn (Kevin Eady) [#58](https://github.com/nodejs/node-addon-api/pull/58) | ||
* [[`2298dfae58`](https://github.com/nodejs/node-addon-api/commit/2298dfae58)] - **doc**: Added AsyncProgressWorker to readme (NickNaso) | ||
* [[`b3609d33b6`](https://github.com/nodejs/node-addon-api/commit/b3609d33b6)] - Fix return type and declaration of setter callback (Tim Rach) | ||
* [[`295e560f55`](https://github.com/nodejs/node-addon-api/commit/295e560f55)] - **test**: improve guards for experimental features (legendecas) | ||
* [[`2e71842f63`](https://github.com/nodejs/node-addon-api/commit/2e71842f63)] - **tsfn**: Implement copy constructor (Kevin Eady) [#546](https://github.com/nodejs/node-addon-api/pull/546) | ||
* [[`650562cab9`](https://github.com/nodejs/node-addon-api/commit/650562cab9)] - **src**: implement AsyncProgressWorker (legendecas) [#529](https://github.com/nodejs/node-addon-api/pull/529) | ||
* [[`bdfd14101f`](https://github.com/nodejs/node-addon-api/commit/bdfd14101f)] - **src**: attach data with napi\_add\_finalizer (Gabriel Schulhof) [#577](https://github.com/nodejs/node-addon-api/pull/577) | ||
* [[`9e955a802b`](https://github.com/nodejs/node-addon-api/commit/9e955a802b)] - **doc**: change node.js to Node.js per guideline (#579) (Tobias Nießen) [#579](https://github.com/nodejs/node-addon-api/pull/579) | ||
* [[`b42e21e3a9`](https://github.com/nodejs/node-addon-api/commit/b42e21e3a9)] - **build**: move node/6 to travis allowed failures and add node/13 (#573) (Gabriel Schulhof) | ||
* [[`8d6132f609`](https://github.com/nodejs/node-addon-api/commit/8d6132f609)] - **doc**: improve AsyncWorker docs (#571) (legendecas) [#571](https://github.com/nodejs/node-addon-api/pull/571) | ||
* [[`bc8fc23627`](https://github.com/nodejs/node-addon-api/commit/bc8fc23627)] - **test**: do not run TSFN tests on NAPI\_VERSION \< 4 (legendecas) [#576](https://github.com/nodejs/node-addon-api/pull/576) | ||
* [[`bcc1d58fc4`](https://github.com/nodejs/node-addon-api/commit/bcc1d58fc4)] - implement Object::AddFinalizer (Gabriel Schulhof) | ||
* [[`e9a4bcd52a`](https://github.com/nodejs/node-addon-api/commit/e9a4bcd52a)] - **doc**: updates Make.js doc to current best practices (Jim Schlight) [#558](https://github.com/nodejs/node-addon-api/pull/558) | ||
* [[`b513d1aa7a`](https://github.com/nodejs/node-addon-api/commit/b513d1aa7a)] - **doc**: fix return type of ArrayBuffer::Data (Tobias Nießen) [#552](https://github.com/nodejs/node-addon-api/pull/552) | ||
* [[`34c11cf0a4`](https://github.com/nodejs/node-addon-api/commit/34c11cf0a4)] - **src**: disallow copying, double close of scopes (legendecas) [#566](https://github.com/nodejs/node-addon-api/pull/566) | ||
* [[`ce139a05e8`](https://github.com/nodejs/node-addon-api/commit/ce139a05e8)] - **src**: make failure of closing scopes fatal (legendecas) [#566](https://github.com/nodejs/node-addon-api/pull/566) | ||
* [[`740c79823e`](https://github.com/nodejs/node-addon-api/commit/740c79823e)] - **src**: add Env() to AsyncContext (Rolf Timmermans) [#568](https://github.com/nodejs/node-addon-api/pull/568) | ||
* [[`ea9ce1c801`](https://github.com/nodejs/node-addon-api/commit/ea9ce1c801)] - **tsfn**: add wrappers for Ref and Unref (Kevin Eady) [#561](https://github.com/nodejs/node-addon-api/pull/561) | ||
* [[`2e1769e1a3`](https://github.com/nodejs/node-addon-api/commit/2e1769e1a3)] - **error**: remove unnecessary if condition (legendecas) [#562](https://github.com/nodejs/node-addon-api/pull/562) | ||
* [[`828f223a87`](https://github.com/nodejs/node-addon-api/commit/828f223a87)] - **doc**: fix spelling in ObjectWrap doc (#563) (Tobias Nießen) [#563](https://github.com/nodejs/node-addon-api/pull/563) | ||
* [[`dd9fa8a4a8`](https://github.com/nodejs/node-addon-api/commit/dd9fa8a4a8)] - **doc**: move Arunesh and Taylor to Emeritus (#540) (Michael Dawson) [#540](https://github.com/nodejs/node-addon-api/pull/540) | ||
* [[`cf8b8415df`](https://github.com/nodejs/node-addon-api/commit/cf8b8415df)] - **doc**: add Kevin to the list of collaborators (#539) (Michael Dawson) [#539](https://github.com/nodejs/node-addon-api/pull/539) | ||
* [[`5d6aeae7b5`](https://github.com/nodejs/node-addon-api/commit/5d6aeae7b5)] - **build**: enable travis for fast PR check (legendecas) | ||
* [[`6192e705cd`](https://github.com/nodejs/node-addon-api/commit/6192e705cd)] - **src**: add napi\_date (Mathias Küsel) [#497](https://github.com/nodejs/node-addon-api/pull/497) | ||
* [[`7b1ee96d52`](https://github.com/nodejs/node-addon-api/commit/7b1ee96d52)] - **doc**: update prebuild\_tools.md (Nurbol Alpysbayev) [#527](https://github.com/nodejs/node-addon-api/pull/527) | ||
* [[`0b4f3a5b8c`](https://github.com/nodejs/node-addon-api/commit/0b4f3a5b8c)] - **tsfn**: fix crash on releasing tsfn (legendecas) [#532](https://github.com/nodejs/node-addon-api/pull/532) | ||
* [[`c3c8814d2f`](https://github.com/nodejs/node-addon-api/commit/c3c8814d2f)] - implement virutal ObjectWrap::Finalize (Michael Price) [#515](https://github.com/nodejs/node-addon-api/pull/515) | ||
## 2019-07-23 Version 1.7.1, @NickNaso | ||
@@ -4,0 +67,0 @@ |
@@ -126,5 +126,5 @@ # ArrayBuffer | ||
```cpp | ||
T* Napi::ArrayBuffer::Data() const; | ||
void* Napi::ArrayBuffer::Data() const; | ||
``` | ||
Returns a pointer the wrapped data. |
@@ -48,2 +48,12 @@ # AsyncContext | ||
### Env | ||
Requests the environment in which the async context has been initially created. | ||
```cpp | ||
Napi::Env Env() const; | ||
``` | ||
Returns the `Napi::Env` environment in which the async context has been created. | ||
## Operator | ||
@@ -50,0 +60,0 @@ |
@@ -7,3 +7,3 @@ # Asynchronous operations | ||
In the Node.js model of execution the event loop thread represents the thread | ||
where JavaScript code is executing. The node.js guidance is to avoid blocking | ||
where JavaScript code is executing. The Node.js guidance is to avoid blocking | ||
other work queued on the event loop thread. Therefore, we need to do this work on | ||
@@ -10,0 +10,0 @@ another thread. |
@@ -10,4 +10,4 @@ # AsyncWorker | ||
a thread is available for execution the `Napi::AsyncWorker::Execute` method will | ||
be invoked. Once `Napi::AsyncWorker::Execute` completes either | ||
`Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` will be invoked. Once | ||
be invoked. Once `Napi::AsyncWorker::Execute` completes either | ||
`Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` will be invoked. Once | ||
the `Napi::AsyncWorker::OnOK` or `Napi::AsyncWorker::OnError` methods are | ||
@@ -42,3 +42,3 @@ complete the `Napi::AsyncWorker` instance is destructed. | ||
Cancels queued work if it has not yet been started. If it has already started | ||
executing, it cannot be cancelled. If cancelled successfully neither | ||
executing, it cannot be cancelled. If cancelled successfully neither | ||
`OnOK` nor `OnError` will be called. | ||
@@ -95,10 +95,10 @@ | ||
This method is used to execute some tasks out of the **event loop** on a libuv | ||
This method is used to execute some tasks outside of the **event loop** on a libuv | ||
worker thread. Subclasses must implement this method and the method is run on | ||
a thread other than that running the main event loop. As the method is not | ||
a thread other than that running the main event loop. As the method is not | ||
running on the main event loop, it must avoid calling any methods from node-addon-api | ||
or running any code that might invoke JavaScript. Instead, once this method is | ||
complete any interaction through node-addon-api with JavaScript should be implemented | ||
in the `Napi::AsyncWorker::OnOK` method which runs on the main thread and is | ||
invoked when the `Napi::AsyncWorker::Execute` method completes. | ||
in the `Napi::AsyncWorker::OnOK` method and `Napi::AsyncWorker::OnError` which run | ||
on the main thread and are invoked when the `Napi::AsyncWorker::Execute` method completes. | ||
@@ -112,5 +112,6 @@ ```cpp | ||
This method is invoked when the computation in the `Execute` method ends. | ||
The default implementation runs the Callback optionally provided when the AsyncWorker class | ||
was created. The callback will by default receive no arguments. To provide arguments, | ||
override the `GetResult()` method. | ||
The default implementation runs the `Callback` optionally provided when the | ||
`AsyncWorker` class was created. The `Callback` will by default receive no | ||
arguments. The arguments to the `Callback` can be provided by overriding the | ||
`GetResult()` method. | ||
@@ -122,5 +123,5 @@ ```cpp | ||
This method returns the arguments passed to the Callback invoked by the default | ||
This method returns the arguments passed to the `Callback` invoked by the default | ||
`OnOK()` implementation. The default implementation returns an empty vector, | ||
providing no arguments to the Callback. | ||
providing no arguments to the `Callback`. | ||
@@ -136,3 +137,3 @@ ```cpp | ||
enabled or if an error was set through a call to `Napi::AsyncWorker::SetError`. | ||
The default implementation calls the callback provided when the `Napi::AsyncWorker` | ||
The default implementation calls the `Callback` provided when the `Napi::AsyncWorker` | ||
class was created, passing in the error as the first parameter. | ||
@@ -181,3 +182,3 @@ | ||
operations ends. The given function is called from the main event loop thread. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -199,3 +200,3 @@ information exposed by the async_hooks API. | ||
operations ends. The given function is called from the main event loop thread. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -235,3 +236,3 @@ information exposed by the async_hooks API. | ||
operations ends. The given function is called from the main event loop thread. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -254,3 +255,3 @@ information exposed by the async_hooks API. | ||
operations ends. The given function is called from the main event loop thread. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -287,3 +288,3 @@ information exposed by the async_hooks API. | ||
- `[in] env`: The environment in which to create the `Napi::AsyncWorker`. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -304,3 +305,3 @@ information exposed by the async_hooks API. | ||
- `[in] env`: The environment in which to create the `Napi::AsyncWorker`. | ||
- `[in] resource_name`: Null-terminated strings that represents the | ||
- `[in] resource_name`: Null-terminated string that represents the | ||
identifier for the kind of resource that is being provided for diagnostic | ||
@@ -348,3 +349,3 @@ information exposed by the async_hooks API. | ||
The code below show a basic example of `Napi::AsyncWorker` the implementation: | ||
The code below shows a basic example of `Napi::AsyncWorker` the implementation: | ||
@@ -387,3 +388,3 @@ ```cpp | ||
The following code shows an example on how to create and use an `Napi::AsyncWorker` | ||
The following code shows an example of how to create and use an `Napi::AsyncWorker`. | ||
@@ -399,3 +400,3 @@ ```cpp | ||
Value Echo(const CallbackInfo& info) { | ||
// You need to check the input data here | ||
// You need to validate the arguments here. | ||
Function cb = info[1].As<Function>(); | ||
@@ -402,0 +403,0 @@ std::string in = info[0].As<String>(); |
@@ -260,2 +260,10 @@ # Basic Types | ||
#### IsDate | ||
```cpp | ||
bool Napi::Value::IsDate() const; | ||
``` | ||
Returns `true` if the underlying value is a JavaScript `Date` or `false` | ||
otherwise. | ||
#### ToBoolean | ||
@@ -262,0 +270,0 @@ ```cpp |
@@ -23,3 +23,3 @@ # Class property and descriptor | ||
Napi::Value GetValue(const Napi::CallbackInfo &info); | ||
Napi::Value SetValue(const Napi::CallbackInfo &info); | ||
void SetValue(const Napi::CallbackInfo &info, const Napi::Value &value); | ||
}; | ||
@@ -56,3 +56,3 @@ | ||
Napi::Value Example::SetValue(const Napi::CallbackInfo &info, const Napi::Value &value) { | ||
void Example::SetValue(const Napi::CallbackInfo &info, const Napi::Value &value) { | ||
Napi::Env env = info.Env(); | ||
@@ -62,3 +62,2 @@ // ... | ||
this->_value = arg.DoubleValue(); | ||
return this->GetValue(info); | ||
} | ||
@@ -65,0 +64,0 @@ |
# CMake.js | ||
**CMake.js** is a build tool that allow native addon developer to compile their | ||
C++ code into executable form. It works like **[node-gyp](node-gyp.md)** but | ||
instead of Google's **gyp** format it is base on **CMake** build system. | ||
[**CMake.js**](https://github.com/cmake-js/cmake-js) is a build tool that allow native addon developers to compile their | ||
C or C++ code into executable form. It works like **[node-gyp](node-gyp.md)** but | ||
instead of Google's [**gyp**](https://gyp.gsrc.io) tool it is based on the [**CMake**](https://cmake.org) build system. | ||
## **CMake** reference | ||
## Quick Start | ||
- [Installation](https://www.npmjs.com/package/cmake-js#installation) | ||
- [How to use](https://www.npmjs.com/package/cmake-js#usage) | ||
### Install CMake | ||
CMake.js requires that CMake be installed. Installers for a variety of platforms can be found on the [CMake website](https://cmake.org). | ||
### Install CMake.js | ||
For developers, CMake.js is typically installed as a global package: | ||
```bash | ||
npm install -g cmake-js | ||
cmake-js --help | ||
``` | ||
> For *users* of your native addon, CMake.js should be configured as a dependency in your `package.json` as described in the [CMake.js documentation](https://github.com/cmake-js/cmake-js). | ||
### CMakeLists.txt | ||
Your project will require a `CMakeLists.txt` file. The [CMake.js README file](https://github.com/cmake-js/cmake-js#usage) shows what's necessary. | ||
### NAPI_VERSION | ||
When building N-API addons, it's crucial to specify the N-API version your code is designed to work with. With CMake.js, this information is specified in the `CMakeLists.txt` file: | ||
``` | ||
add_definitions(-DNAPI_VERSION=3) | ||
``` | ||
Since N-API is ABI-stable, your N-API addon will work, without recompilation, with the N-API version you specify in `NAPI_VERSION` and all subsequent N-API versions. | ||
In the absence of a need for features available only in a specific N-API version, version 3 is a good choice as it is the version of N-API that was active when N-API left experimental status. | ||
### NAPI_EXPERIMENTAL | ||
The following line in the `CMakeLists.txt` file will enable N-API experimental features if your code requires them: | ||
``` | ||
add_definitions(-DNAPI_EXPERIMENTAL) | ||
``` | ||
### node-addon-api | ||
If your N-API native add-on uses the optional [**node-addon-api**](https://github.com/nodejs/node-addon-api#node-addon-api-module) C++ wrapper, the `CMakeLists.txt` file requires additional configuration information as described on the [CMake.js README file](https://github.com/cmake-js/cmake-js#n-api-and-node-addon-api). | ||
## Example | ||
A working example of an N-API native addon built using CMake.js can be found on the [node-addon-examples repository](https://github.com/nodejs/node-addon-examples/tree/master/build_with_cmake#building-n-api-addons-using-cmakejs). | ||
## **CMake** Reference | ||
- [Installation](https://github.com/cmake-js/cmake-js#installation) | ||
- [How to use](https://github.com/cmake-js/cmake-js#usage) | ||
- [Using N-API and node-addon-api](https://github.com/cmake-js/cmake-js#n-api-and-node-addon-api) | ||
- [Tutorials](https://www.npmjs.com/package/cmake-js#tutorials) | ||
- [Use case in the works - ArrayFire.js](https://www.npmjs.com/package/cmake-js#use-case-in-the-works---arrayfirejs) | ||
- [Tutorials](https://github.com/cmake-js/cmake-js#tutorials) | ||
- [Use case in the works - ArrayFire.js](https://github.com/cmake-js/cmake-js#use-case-in-the-works---arrayfirejs) | ||
@@ -19,2 +68,2 @@ Sometimes finding the right settings is not easy so to accomplish at most | ||
- [CMake documentation](https://cmake.org/) | ||
- [CMake.js wiki](https://github.com/cmake-js/cmake-js/wiki) | ||
- [CMake.js wiki](https://github.com/cmake-js/cmake-js/wiki) |
@@ -164,3 +164,3 @@ # Object Wrap | ||
static and instance properties and methods of the class. | ||
See: [`Class propertry and descriptor`](class_property_descriptor.md). | ||
See: [`Class property and descriptor`](class_property_descriptor.md). | ||
* `[in] data`: User-provided data passed to the constructor callback as `data` | ||
@@ -188,3 +188,3 @@ property of the `Napi::CallbackInfo`. | ||
instance properties and methods of the class. | ||
See: [`Class propertry and descriptor`](class_property_descriptor.md). | ||
See: [`Class property and descriptor`](class_property_descriptor.md). | ||
* `[in] data`: User-provided data passed to the constructor callback as `data` | ||
@@ -195,2 +195,13 @@ property of the `Napi::CallbackInfo`. | ||
### Finalize | ||
Provides an opportunity to run cleanup code that requires access to the `Napi::Env` | ||
before the wrapped native object instance is freed. Override to implement. | ||
```cpp | ||
virtual void Finalize(Napi::Env env); | ||
``` | ||
- `[in] env`: `Napi::Env`. | ||
### StaticMethod | ||
@@ -197,0 +208,0 @@ |
@@ -140,2 +140,36 @@ # Object | ||
### AddFinalizer() | ||
```cpp | ||
template <typename Finalizer, typename T> | ||
inline void AddFinalizer(Finalizer finalizeCallback, T* data); | ||
``` | ||
- `[in] finalizeCallback`: The function to call when the object is garbage-collected. | ||
- `[in] data`: The data to associate with the object. | ||
Associates `data` with the object, calling `finalizeCallback` when the object is garbage-collected. `finalizeCallback` | ||
has the signature | ||
```cpp | ||
void finalizeCallback(Napi::Env env, T* data); | ||
``` | ||
where `data` is the pointer that was passed into the call to `AddFinalizer()`. | ||
### AddFinalizer() | ||
```cpp | ||
template <typename Finalizer, typename T, typename Hint> | ||
inline void AddFinalizer(Finalizer finalizeCallback, | ||
T* data, | ||
Hint* finalizeHint); | ||
``` | ||
- `[in] data`: The data to associate with the object. | ||
- `[in] finalizeCallback`: The function to call when the object is garbage-collected. | ||
Associates `data` with the object, calling `finalizeCallback` when the object is garbage-collected. An additional hint | ||
may be given. It will also be passed to `finalizeCallback`, which has the signature | ||
```cpp | ||
void finalizeCallback(Napi::Env env, T* data, Hint* hint); | ||
``` | ||
where `data` and `hint` are the pointers that were passed into the call to `AddFinalizer()`. | ||
### DefineProperty() | ||
@@ -142,0 +176,0 @@ |
@@ -12,3 +12,3 @@ # Prebuild tools | ||
The following list report two of the tools that are compatible with **N-API**: | ||
The following list report known tools that are compatible with **N-API**: | ||
@@ -15,0 +15,0 @@ - **[node-pre-gyp](https://www.npmjs.com/package/node-pre-gyp)** |
@@ -61,3 +61,6 @@ # ThreadSafeFunction | ||
Returns a non-empty `Napi::ThreadSafeFunction` instance. | ||
Returns a non-empty `Napi::ThreadSafeFunction` instance. When using this | ||
constructor, only use the `Blocking(void*)` / `NonBlocking(void*)` overloads; | ||
the `Callback` and templated `data*` overloads should _not_ be used. See below | ||
for additional details. | ||
@@ -175,2 +178,5 @@ ### New | ||
**These specific function overloads should only be used on a `ThreadSafeFunction` | ||
created via `ThreadSafeFunction::New`.** | ||
```cpp | ||
@@ -191,2 +197,13 @@ napi_status Napi::ThreadSafeFunction::BlockingCall(DataType* data, Callback callback) const | ||
**These specific function overloads should only be used on a `ThreadSafeFunction` | ||
created via `ThreadSafeFunction(napi_threadsafe_function)`.** | ||
```cpp | ||
napi_status Napi::ThreadSafeFunction::BlockingCall(void* data) const | ||
napi_status Napi::ThreadSafeFunction::NonBlockingCall(void* data) const | ||
``` | ||
- `data`: Data to pass to `call_js_cb` specified when creating the thread-safe | ||
function via `napi_create_threadsafe_function`. | ||
Returns one of: | ||
@@ -193,0 +210,0 @@ - `napi_ok`: The call was successfully added to the queue. |
@@ -13,2 +13,3 @@ # Value | ||
- [`Napi::Buffer`](buffer.md) | ||
- [`Napi::Date`](date.md) | ||
- [`Napi::External`](external.md) | ||
@@ -230,2 +231,10 @@ - [`Napi::Function`](function.md) | ||
### IsDate | ||
```cpp | ||
bool Napi::Value::IsDate() const; | ||
``` | ||
Returns a `bool` indicating if this `Napi::Value` is a JavaScript date. | ||
### As | ||
@@ -232,0 +241,0 @@ |
258
package.json
@@ -6,46 +6,202 @@ { | ||
"contributors": [ | ||
"Abhishek Kumar Singh (https://github.com/abhi11210646)", | ||
"Alba Mendez (https://github.com/jmendeth)", | ||
"Andrew Petersen (https://github.com/kirbysayshi)", | ||
"Anisha Rohra (https://github.com/anisha-rohra)", | ||
"Anna Henningsen (https://github.com/addaleax)", | ||
"Arnaud Botella (https://github.com/BotellaA)", | ||
"Arunesh Chandra (https://github.com/aruneshchandra)", | ||
"Ben Berman (https://github.com/rivertam)", | ||
"Benjamin Byholm (https://github.com/kkoopa)", | ||
"Bill Gallafent (https://github.com/gallafent)", | ||
"Bruce A. MacNaughton (https://github.com/bmacnaughton)", | ||
"Cory Mickelson (https://github.com/corymickelson)", | ||
"David Halls (https://github.com/davedoesdev)", | ||
"Dongjin Na (https://github.com/nadongguri)", | ||
"Eric Bickle (https://github.com/ebickle)", | ||
"Gabriel Schulhof (https://github.com/gabrielschulhof)", | ||
"Gus Caplan (https://github.com/devsnek)", | ||
"Hitesh Kanwathirtha (https://github.com/digitalinfinity)", | ||
"Jake Barnes (https://github.com/DuBistKomisch)", | ||
"Jake Yoon (https://github.com/yjaeseok)", | ||
"Jason Ginchereau (https://github.com/jasongin)", | ||
"Jim Schlight (https://github.com/jschlight)", | ||
"Jinho Bang (https://github.com/romandev)", | ||
"joshgarde (https://github.com/joshgarde)", | ||
"Kevin Eady (https://github.com/KevinEady)", | ||
"Konstantin Tarkus (https://github.com/koistya)", | ||
"Kyle Farnung (https://github.com/kfarnung)", | ||
"Luciano Martorella (https://github.com/lmartorella)", | ||
"Matteo Collina (https://github.com/mcollina)", | ||
"Michael Dawson (https://github.com/mhdawson)", | ||
"Michele Campus (https://github.com/kYroL01)", | ||
"Mikhail Cheshkov (https://github.com/mcheshkov)", | ||
"Nicola Del Gobbo (https://github.com/NickNaso)", | ||
"Nick Soggin (https://github.com/iSkore)", | ||
"Philipp Renoth (https://github.com/DaAitch)", | ||
"Rolf Timmermans (https://github.com/rolftimmermans)", | ||
"Ross Weir (https://github.com/ross-weir)", | ||
"Ryuichi Okumura (https://github.com/okuryu)", | ||
"Sampson Gao (https://github.com/sampsongao)", | ||
"Sam Roberts (https://github.com/sam-github)", | ||
"Taylor Woll (https://github.com/boingoing)", | ||
"Thomas Gentilhomme (https://github.com/fraxken)", | ||
"Tux3 (https://github.com/tux3)", | ||
"Yohei Kishimoto (https://github.com/morokosi)" | ||
{ | ||
"name": "Abhishek Kumar Singh", | ||
"url": "https://github.com/abhi11210646" | ||
}, | ||
{ | ||
"name": "Alba Mendez", | ||
"url": "https://github.com/jmendeth" | ||
}, | ||
{ | ||
"name": "Andrew Petersen", | ||
"url": "https://github.com/kirbysayshi" | ||
}, | ||
{ | ||
"name": "Anisha Rohra", | ||
"url": "https://github.com/anisha-rohra" | ||
}, | ||
{ | ||
"name": "Anna Henningsen", | ||
"url": "https://github.com/addaleax" | ||
}, | ||
{ | ||
"name": "Arnaud Botella", | ||
"url": "https://github.com/BotellaA" | ||
}, | ||
{ | ||
"name": "Arunesh Chandra", | ||
"url": "https://github.com/aruneshchandra" | ||
}, | ||
{ | ||
"name": "Ben Berman", | ||
"url": "https://github.com/rivertam" | ||
}, | ||
{ | ||
"name": "Benjamin Byholm", | ||
"url": "https://github.com/kkoopa" | ||
}, | ||
{ | ||
"name": "Bill Gallafent", | ||
"url": "https://github.com/gallafent" | ||
}, | ||
{ | ||
"name": "Bruce A. MacNaughton", | ||
"url": "https://github.com/bmacnaughton" | ||
}, | ||
{ | ||
"name": "Cory Mickelson", | ||
"url": "https://github.com/corymickelson" | ||
}, | ||
{ | ||
"name": "David Halls", | ||
"url": "https://github.com/davedoesdev" | ||
}, | ||
{ | ||
"name": "Dongjin Na", | ||
"url": "https://github.com/nadongguri" | ||
}, | ||
{ | ||
"name": "Eric Bickle", | ||
"url": "https://github.com/ebickle" | ||
}, | ||
{ | ||
"name": "Gabriel Schulhof", | ||
"url": "https://github.com/gabrielschulhof" | ||
}, | ||
{ | ||
"name": "Gus Caplan", | ||
"url": "https://github.com/devsnek" | ||
}, | ||
{ | ||
"name": "Hitesh Kanwathirtha", | ||
"url": "https://github.com/digitalinfinity" | ||
}, | ||
{ | ||
"name": "Jake Barnes", | ||
"url": "https://github.com/DuBistKomisch" | ||
}, | ||
{ | ||
"name": "Jake Yoon", | ||
"url": "https://github.com/yjaeseok" | ||
}, | ||
{ | ||
"name": "Jason Ginchereau", | ||
"url": "https://github.com/jasongin" | ||
}, | ||
{ | ||
"name": "Jim Schlight", | ||
"url": "https://github.com/jschlight" | ||
}, | ||
{ | ||
"name": "Jinho Bang", | ||
"url": "https://github.com/romandev" | ||
}, | ||
{ | ||
"name": "joshgarde", | ||
"url": "https://github.com/joshgarde" | ||
}, | ||
{ | ||
"name": "Kevin Eady", | ||
"url": "https://github.com/KevinEady" | ||
}, | ||
{ | ||
"name": "Konstantin Tarkus", | ||
"url": "https://github.com/koistya" | ||
}, | ||
{ | ||
"name": "Kyle Farnung", | ||
"url": "https://github.com/kfarnung" | ||
}, | ||
{ | ||
"name": "legendecas", | ||
"url": "https://github.com/legendecas" | ||
}, | ||
{ | ||
"name": "Luciano Martorella", | ||
"url": "https://github.com/lmartorella" | ||
}, | ||
{ | ||
"name": "Mathias Küsel", | ||
"url": "https://github.com/mathiask88" | ||
}, | ||
{ | ||
"name": "Matteo Collina", | ||
"url": "https://github.com/mcollina" | ||
}, | ||
{ | ||
"name": "Michael Dawson", | ||
"url": "https://github.com/mhdawson" | ||
}, | ||
{ | ||
"name": "Michael Price", | ||
"url": "https://github.com/mikepricedev" | ||
}, | ||
{ | ||
"name": "Michele Campus", | ||
"url": "https://github.com/kYroL01" | ||
}, | ||
{ | ||
"name": "Mikhail Cheshkov", | ||
"url": "https://github.com/mcheshkov" | ||
}, | ||
{ | ||
"name": "Nicola Del Gobbo", | ||
"url": "https://github.com/NickNaso" | ||
}, | ||
{ | ||
"name": "Nick Soggin", | ||
"url": "https://github.com/iSkore" | ||
}, | ||
{ | ||
"name": "Nurbol Alpysbayev", | ||
"url": "https://github.com/anurbol" | ||
}, | ||
{ | ||
"name": "Philipp Renoth", | ||
"url": "https://github.com/DaAitch" | ||
}, | ||
{ | ||
"name": "Rolf Timmermans", | ||
"url": "https://github.com/rolftimmermans" | ||
}, | ||
{ | ||
"name": "Ross Weir", | ||
"url": "https://github.com/ross-weir" | ||
}, | ||
{ | ||
"name": "Ryuichi Okumura", | ||
"url": "https://github.com/okuryu" | ||
}, | ||
{ | ||
"name": "Sampson Gao", | ||
"url": "https://github.com/sampsongao" | ||
}, | ||
{ | ||
"name": "Sam Roberts", | ||
"url": "https://github.com/sam-github" | ||
}, | ||
{ | ||
"name": "Taylor Woll", | ||
"url": "https://github.com/boingoing" | ||
}, | ||
{ | ||
"name": "Thomas Gentilhomme", | ||
"url": "https://github.com/fraxken" | ||
}, | ||
{ | ||
"name": "Tim Rach", | ||
"url": "https://github.com/timrach" | ||
}, | ||
{ | ||
"name": "Tobias Nießen", | ||
"url": "https://github.com/tniessen" | ||
}, | ||
{ | ||
"name": "Tux3", | ||
"url": "https://github.com/tux3" | ||
}, | ||
{ | ||
"name": "Yohei Kishimoto", | ||
"url": "https://github.com/morokosi" | ||
} | ||
], | ||
@@ -59,3 +215,13 @@ "dependencies": {}, | ||
"homepage": "https://github.com/nodejs/node-addon-api", | ||
"keywords": ["n-api", "napi", "addon", "native", "bindings", "c", "c++", "nan", "node-addon-api"], | ||
"keywords": [ | ||
"n-api", | ||
"napi", | ||
"addon", | ||
"native", | ||
"bindings", | ||
"c", | ||
"c++", | ||
"nan", | ||
"node-addon-api" | ||
], | ||
"license": "MIT", | ||
@@ -79,3 +245,3 @@ "main": "index.js", | ||
}, | ||
"version": "1.7.1" | ||
"version": "2.0.0" | ||
} |
@@ -49,3 +49,3 @@ # **node-addon-api module** | ||
## **Current version: 1.7.1** | ||
## **Current version: 2.0.0** | ||
@@ -79,2 +79,3 @@ (See [CHANGELOG.md](CHANGELOG.md) for complete Changelog) | ||
- [Number](doc/number.md) | ||
- [Date](doc/date.md) | ||
- [BigInt](doc/bigint.md) | ||
@@ -111,2 +112,3 @@ - [Boolean](doc/boolean.md) | ||
- [AsyncContext](doc/async_context.md) | ||
- [AsyncProgressWorker](doc/async_progress_worker.md) | ||
- [Thread-safe Functions](doc/threadsafe_function.md) | ||
@@ -184,3 +186,2 @@ - [Promises](doc/promises.md) | ||
| Anna Henningsen | [addaleax](https://github.com/addaleax) | | ||
| Arunesh Chandra | [aruneshchandra](https://github.com/aruneshchandra) | | ||
| Gabriel Schulhof | [gabrielschulhof](https://github.com/gabrielschulhof) | | ||
@@ -190,4 +191,4 @@ | Hitesh Kanwathirtha | [digitalinfinity](https://github.com/digitalinfinity) | | ||
| Michael Dawson | [mhdawson](https://github.com/mhdawson) | | ||
| Kevin Eady | [KevinEady](https://github.com/KevinEady) | ||
| Nicola Del Gobbo | [NickNaso](https://github.com/NickNaso) | | ||
| Taylor Woll | [boingoing](https://github.com/boingoing) | | ||
@@ -197,5 +198,7 @@ ### Emeritus | ||
| ------------------- | ----------------------------------------------------- | | ||
| Arunesh Chandra | [aruneshchandra](https://github.com/aruneshchandra) | | ||
| Benjamin Byholm | [kkoopa](https://github.com/kkoopa) | | ||
| Jason Ginchereau | [jasongin](https://github.com/jasongin) | | ||
| Sampson Gao | [sampsongao](https://github.com/sampsongao) | | ||
| Taylor Woll | [boingoing](https://github.com/boingoing) | | ||
@@ -202,0 +205,0 @@ <a name="license"></a> |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
795610
76
204