Skip to content

Latest commit

 

History

History
1202 lines (950 loc) · 109 KB

CHANGELOG.md

File metadata and controls

1202 lines (950 loc) · 109 KB

node-addon-api Changelog

2024-03-01 Version 8.0.0, @legendecas

Notable changes

  • Support for Node.js v16.x is no longer maintained.

Commits

  • [df2147a2b6] - build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 (dependabot[bot]) #1455
  • [eb4fa9b55a] - build(deps): bump actions/dependency-review-action from 4.1.0 to 4.1.3 (dependabot[bot]) #1452
  • [f85e8146bb] - build(deps): bump github/codeql-action from 3.23.2 to 3.24.3 (dependabot[bot]) #1448
  • [b84deb0d2f] - build(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.0 (dependabot[bot]) #1447
  • [7dcee380cd] - build(deps): bump actions/setup-node from 4.0.1 to 4.0.2 (dependabot[bot]) #1444
  • [a727b629fe] - build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1 (dependabot[bot]) #1443
  • [ea712094e3] - build(deps): bump step-security/harden-runner from 2.6.1 to 2.7.0 (dependabot[bot]) #1440
  • [898e5006a5] - build(deps): bump github/codeql-action from 3.23.1 to 3.23.2 (dependabot[bot]) #1439
  • [66e6e0e4b6] - build(deps): bump actions/upload-artifact from 4.0.0 to 4.3.0 (dependabot[bot]) #1438
  • [f1ca4ccd7f] - build(deps): bump actions/dependency-review-action from 3.1.5 to 4.0.0 (dependabot[bot]) #1433
  • [c58112d52e] - build(deps): bump github/codeql-action from 3.23.0 to 3.23.1 (dependabot[bot]) #1430
  • [f1b9c0bc24] - chore: remove v16.x regular CI runs (Chengzhong Wu) #1437
  • [c6561d90d6] - chore: reduce dependabot noise (Chengzhong Wu) #1436
  • [42931eeba6] - doc: reorganize readme (Chengzhong Wu) #1441
  • [3b9f3db14e] - doc: update changelog maker commands (Chengzhong Wu) #1431
  • [034c039298] - test: heed npm_config_debug (Gabriel Schulhof) #1445

2024-01-18 Version 7.1.0, @legendecas

Notable changes

API

  • Add Env::GetModuleFileName
  • Add SyntaxError
  • Allow NAPI_VERSION env var and templatize AttachData callback
  • Add common gyp dependency targets.

Commits

  • [864fed488c] - build(deps): bump github/codeql-action from 3.22.12 to 3.23.0 (dependabot[bot]) #1428
  • [81a8d43130] - build(deps): bump actions/dependency-review-action from 3.1.4 to 3.1.5 (dependabot[bot]) #1427
  • [e20088941b] - build(deps): bump github/codeql-action from 3.22.11 to 3.22.12 (dependabot[bot]) #1426
  • [76c7b12e4e] - build(deps): bump actions/setup-node from 4.0.0 to 4.0.1 (dependabot[bot]) #1425
  • [cd58edde1d] - build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 (dependabot[bot]) #1424
  • [0fd1b9e0e1] - build(deps): bump github/codeql-action from 2.22.8 to 3.22.11 (dependabot[bot]) #1423
  • [c181b19d68] - build(deps): bump actions/stale from 8.0.0 to 9.0.0 (dependabot[bot]) #1418
  • [6fa67791a1] - build(deps): bump actions/setup-python from 4.7.1 to 5.0.0 (dependabot[bot]) #1417
  • [1fff346fa6] - build(deps): bump actions/dependency-review-action from 3.1.3 to 3.1.4 (dependabot[bot]) #1415
  • [ecb9690fe5] - build(deps): bump github/codeql-action from 2.22.7 to 2.22.8 (dependabot[bot]) #1414
  • [969547b871] - build(deps): bump github/codeql-action from 2.22.5 to 2.22.7 (dependabot[bot]) #1413
  • [183d1522a9] - build(deps): bump step-security/harden-runner from 2.6.0 to 2.6.1 (dependabot[bot]) #1412
  • [25f977724a] - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.3 (dependabot[bot]) #1410
  • [f6d125a407] - build(deps): bump actions/setup-python from 4.7.0 to 4.7.1 (dependabot[bot]) #1406
  • [ce78a39ec7] - build(deps): bump github/codeql-action from 2.22.4 to 2.22.5 (dependabot[bot]) #1400
  • [dc211ebb48] - build(deps): bump actions/setup-node from 3.8.1 to 4.0.0 (dependabot[bot]) #1398
  • [cab559e3bd] - build(deps): bump ossf/scorecard-action from 2.3.0 to 2.3.1 (dependabot[bot]) #1397
  • [f71ff5582d] - build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 (dependabot[bot]) #1396
  • [21c1d08680] - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 (dependabot[bot]) #1394
  • [e4eec0939c] - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 (dependabot[bot]) #1393
  • [94f3459474] - build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 (dependabot[bot]) #1388
  • [90a741ef10] - build(deps): bump step-security/harden-runner from 2.5.1 to 2.6.0 (dependabot[bot]) #1386
  • [7e1aa06132] - Update LICENSE.md (Michael Dawson) #1385
  • [0a0612362e] - build(deps): bump github/codeql-action from 2.21.7 to 2.21.9 (dependabot[bot]) #1384
  • [47bd430da2] - build(deps): bump actions/checkout from 4.0.0 to 4.1.0 (dependabot[bot]) #1383
  • [b3f7f73cb9] - build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 (dependabot[bot]) #1377
  • [12c1655387] - build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 (dependabot[bot]) #1380
  • [6abed318e4] - build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 (dependabot[bot]) #1378
  • [89eda59930] - build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 (dependabot[bot]) #1376
  • [90870dbffa] - build(deps): bump actions/checkout from 3.6.0 to 4.0.0 (dependabot[bot]) #1375
  • [b860793eff] - build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 (dependabot[bot]) #1372
  • [f9b9974b4a] - build(deps): bump actions/checkout from 3.5.3 to 3.6.0 (dependabot[bot]) #1371
  • [9596e3de2d] - build(deps): bump actions/setup-node from 3.7.0 to 3.8.1 (dependabot[bot]) #1370
  • [e969210747] - build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 (dependabot[bot]) #1368
  • [13ef96a5a9] - build(deps): bump step-security/harden-runner from 2.5.0 to 2.5.1 (dependabot[bot]) #1364
  • [9776d148b3] - build(deps): bump github/codeql-action from 2.21.1 to 2.21.2 (dependabot[bot]) #1358
  • [59dc6be097] - build(deps): bump github/codeql-action from 2.21.0 to 2.21.1 (dependabot[bot]) #1357
  • [5e72796cd5] - build(deps): bump step-security/harden-runner from 2.4.1 to 2.5.0 (dependabot[bot]) #1356
  • [4e62db45e4] - build(deps): bump github/codeql-action from 2.20.3 to 2.21.0 (dependabot[bot]) #1353
  • [0c093a33e8] - build(deps): bump github/codeql-action from 2.20.1 to 2.20.3 (dependabot[bot]) #1349
  • [5523b2d3fa] - build(deps): bump actions/setup-node from 3.6.0 to 3.7.0 (dependabot[bot]) #1348
  • [afa494ef7f] - Add Node.js version restrictions (Ingo Fischer) #1340
  • [ac4c87f660] - build(deps): bump ossf/scorecard-action from 2.0.6 to 2.2.0 (dependabot[bot]) #1344
  • [47aeb6689d] - build(deps): bump github/codeql-action from 2.2.12 to 2.20.1 (dependabot[bot]) #1343
  • [bd45a8fffc] - build(deps): bump step-security/harden-runner from 2.3.0 to 2.4.1 (dependabot[bot]) #1342
  • [343a1e1708] - build(deps-dev): bump fs-extra from 9.1.0 to 11.1.1 (dependabot[bot]) #1335
  • [4168c10182] - build(deps): bump actions/stale from 5.2.1 to 8.0.0 (dependabot[bot]) #1333
  • [1c182abd1f] - build(deps): bump actions/dependency-review-action from 2.5.1 to 3.0.6 (dependabot[bot]) #1331
  • [717a61931d] - build(deps): bump actions/checkout from 3.5.2 to 3.5.3 (dependabot[bot]) #1329
  • [d605d62c89] - chore: lock python version in actions (Chengzhong Wu) #1403
  • [734e3f2509] - doc: fix rendering of code blocks in list (Tobias Nießen) #1401
  • [dfdf6eb6e6] - doc: add missing title IsBigInt (Marx) #1352
  • [8850997f38] - doc: fix typo AsyncProgressWorker::ExecutionProgress (JerryZhongJ) #1350
  • [8192a471a1] - docs: fixed Broken Links (Ömer AKGÜL) #1405
  • [16a18c047a] - fix: handle c++ exception in TSFN callback (Chengzhong Wu) #1345
  • [ab14347080] - gyp: add common targets (Chengzhong Wu) #1389
  • [fa3518bc08] - src: remove duplicate buffer info calls (Chengzhong Wu) #1354
  • [b83e453e6e] - src: add Env::GetModuleFileName (Kevin Eady) #1327
  • [d9828c6264] - src: add SyntaxError (Kevin Eady) #1326
  • [c52e764bb2] - src,test,build: allow NAPI_VERSION env var and templatize AttachData callback (Gabriel Schulhof) #1399
  • [8f028d630a] - test: remove experimental flag from bigint (Gabriel Schulhof) #1395
  • [414be9e000] - test: run interfering tests in their own process (Gabriel Schulhof) #1325

2023-06-13 Version 7.0.0, @KevinEady

Notable changes

API

  • Drop support for Node.js v14.x and v19.x.
  • Ensure native receiver exists when calling instance methods and properties.
  • Fix issue when creating Napi::Error instances that wrap primitives values.

TEST

  • Added tests for Napi::AsyncProgressQueueWorker<T> class.
  • Added tests for Napi::AsyncProgressWorker<T> class.

Documentation

  • Added documentation for Napi::Value::IsBigInt().

Commits

  • [de5c899400] - doc,chore: drop support for Node.js v14, v19 (Kevin Eady) #1324
  • [3083b7f148] - [StepSecurity] Apply security best practices (StepSecurity Bot) #1308
  • [a198e24a15] - [Test] Add tests for async progress queue worker (Jack) #1316
  • [665f4aa845] - doc: add missing Value::IsBigInt (Kevin Eady) #1319
  • [358b2d3b4f] - doc: complete code curly braces in async_worker.md (wanlu) #1317
  • [858942ce31] - src: avoid calling into C++ with a null this (Caleb Hearon) #1313
  • [64f6515331] - src: handle failure during error wrap of primitive (Gabriel Schulhof) #1310
  • [dfad6b45fe] - [test] Add test coverage for AsyncProgressWorker (Jack) #1307
  • [0e34f22839] - release: v6.1.0. (Nicola Del Gobbo)

2023-04-20 Version 6.1.0, @NickNaso

Notable changes

API

  • Enforce type checks on Napi::Value::As().
  • Added Napi::TypeTaggable class.
  • Defined NAPI_HAS_THREADS to make TSFN available on Emscripten.
  • Defined NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED and Napi::Buffer::NewOrCopy() to handle the support for external buffers.

TEST

  • Added tests for Napi::Reference<T> class.
  • Added tests for copy/move semantics.
  • Added tests for Napi::RangeError and Napi::TypeError class.
  • Fixed inconsistent failure executing test suite.
  • Added tests for Napi::ObjectReference<T> class.
  • Added tests for Napi::ObjectWrap<T> class.

Documentation

  • Added documentation for Napi::TypeTaggable.
  • Some minor fixes all over the documentation.

Commits

  • [5adb896782] - src: enforce type checks on Napi::Value::As() (#1281) (Chengzhong Wu)
  • [d9faac7ec2] - Fix exits/exists typo in docs for Env::AddCleanupHook() (#1306) (Mathias Stearn)
  • [164459ca03] - doc: update class hierarchy for TypeTaggable (Gabriel Schulhof) #1303
  • [d01304437c] - src: interject class TypeTaggable (Gabriel Schulhof) #1298
  • [d4942ccd4f] - test: Complete test coverage for Reference<T> class (#1277) (Jack)
  • [a8ad7e7a7b] - test: Add tests for copy/move semantics (JckXia) #1295
  • [e484327344] - Add test coverage for typed and range err (#1280) (Jack)
  • [ebc7858593] - test: Update wait with a condition (#1297) (Jack)
  • [0b53d885f5] - src: define NAPI_HAS_THREADS (toyobayashi) #1283
  • [464610babf] - test: complete objectRefs tests (JckXia) #1274
  • [b16c762a19] - src: handle no support for external buffers (legendecas) #1273
  • [61b8e28720] - test: Add test covg for obj wrap (#1269) (Jack)

2023-02-03 Version 6.0.0, @NickNaso

Notable changes

API

  • Added Napi::Object::TypeTag() and Napi::Object::CheckTypeTag() methods.
  • Made operator napi_callback_info explicit.

TEST

  • Some minor fixes all over the test suite.
  • Added tests related to Napi::Object::TypeTag() and Napi::Object::CheckTypeTag() methods.
  • Added tests related to Napi::CallbackScope.
  • Added tests related to Napi::EscapableHandleScope.
  • Added tests related to Napi::Maybe<T>.
  • Added tests related to Napi::ThreadSafeFuntion.
  • Changed some tests related to Napi::AsyncWorker.

Documentation

  • Added documentation for Napi::Object::TypeTag() and Napi::Object::CheckTypeTag() methods.
  • Added documentation about how to run a specific unit test.

TOOL

  • Added x86 architecture to the CI matrix.

Commits

  • [e2726193f1] - src: remove AsyncWorker move and complete tests (JckXia) #1266
  • [ff969485ea] - chore: build node-addon-api against X86 (JckXia) #1276
  • [a70564cdfd] - test: add cov for ThreadSafeFunction new overloads (JckXia) #1251
  • [53f7cf1d48] - src: make operator napi_callback_info explicit (Kevin Eady) #1275
  • [78b5a15533] - test: Add tests for ThreadSafeFunction's NonBlock function overloads (#1249) (Jack)
  • [fdc6263034] - test: Add test covg for Maybe<T> (#1270) (Jack)
  • [35d9d669b3] - test: add test covg for handle and escapehandle scopes (JckXia) #1263
  • [021313409e] - test: add unit test covg for callbackscopes (JckXia) #1262
  • [b11e4de2cf] - src: add Object::TypeTag, Object::CheckTypeTag (Kevin Eady) #1261

2023-01-13 Version 5.1.0, @NickNaso

Notable changes

API

  • Fixed memory leak in Napi::AsyncProgressWorkerBase.
  • Added api to get callback_info from Napi::CallBackInfo.
  • Fixed erros and warning in VS 2017.
  • Made Npi::Env::CleanupHook public.
  • Removed Napi::TypedArray::unknown_array_type.

TEST

  • Some minor fixes all over the test suite.
  • Added tests related to Napi::Env.
  • Added tests related to Napi::TypedArray.
  • Added tests related to Napi::AsyncWorker.
  • Added tests related to Napi::TypedThreadSafeFunction.
  • Added tests related to Napi::Value.
  • Added test related to Napi::Promise.

Documentation

  • Some minor fixes all over the documentation.
  • Added Napi::HandleScope example.
  • Added documentation about how to run a specific unit test.

TOOL

  • Added Windows with VS 2022 and Node.JS 19.x to the CI matrix.
  • Fixed stale workflow.
  • Updated Node.js versions on CI component.
  • Added condition for Window to find eslint.

Commits

  • [79a446fb9c] - Update contributors (#1265) (Kevin Eady)
  • [01c61690c6] - src: napi-inl: Fix a memory leak bug in AsyncProgressWorkerBase (Ammar Faizi) #1264
  • [55bd08ee26] - src: api to get callback_info from CallBackInfo (JckXia) #1253
  • [ad76256714] - test: add tests related to env (JckXia) #1254
  • [5c3937365d] - chore: add Windows with VS 2022 and Node.JS 19.x to the CI matrix (#1252) (Vladimir Morozov)
  • [97736c93f4] - src: fix errors and warnings in VS 2017 (Vladimir Morozov) #1245
  • [ad7ff92c16] - src: refactor call js wrapper (#1242) (Jack)
  • [39267baf1b] - src: make CleanupHook public (Julian Mesa) #1240
  • [edf630cc79] - src: fix implementation of Signal (Kevin Eady) #1216
  • [de5a502f3c] - doc: Napi::Error is caught (Nicola Del Gobbo) #1241
  • [10ad762807] - test: removed the usage of default_configuration. (Nicola Del Gobbo) #1226
  • [e9db2adef2] - test: Add test coverage to TSFN::New() overloads (#1201) (Jack)
  • [c849ad3f6a] - chore: fix stale workflow (#1228) (Richard Lau)
  • [e408804ad8] - test: adding ref for threadsafefunctions (JckXia) #1222
  • [a8afb2d73c] - src: remove TypedArray::unknown_array_type (Kevin Eady) #1209
  • [257a52f823] - test: Add test cased for failed task cancellations (#1214) (Jack)
  • [793268c59f] - test: Add test case for canceling async worker tasks (#1202) (Jack)
  • [1331856ef1] - doc: add HandleScope example (#1210) (Kevin Eady)
  • [d5fc875e5d] - test: remove update to process.config (#1208) (Michael Dawson)
  • [30cd4a37f0] - test: add tests for .Data method (JckXia) #1203
  • [225ca35963] - test: Add test coverage for "TSFN::Ref()" (#1196) (Jack)
  • [5a5a213985] - Update CI component versions (#1200) (Vladimir Morozov)
  • [fb27e72b0c] - doc: Update CONTRIBUTING.md (Saint Gabriel) #1185
  • [e9def3ed72] - doc: Update Readme for filter conditions in unit tests (Deepak Rajamohan) #1199
  • [efd67876e1] - doc: updated npm script for focused tests (Peter Šándor)
  • [134961d853] - test: CallbackInfo NewTarget() basic coverage (#1048) (Peter Šándor)
  • [1dfd03bdd5] - Update README.md (#1187) (Saint Gabriel)
  • [576128fd19] - doc: fix typo in async_operations.md (#1189) (Tobias Nießen)
  • [63d3c30ec1] - test: add tests for TypedArray (Dante Calderon) #1179
  • [358ac2f080] - Fix link to CMake.js documentation (#1180) (Kyle Kovacs)
  • [dc4f2bbe4a] - test: Add promise unit test (#1173) (Jenny)
  • [f3124ae0ed] - doc: fix broken Napi::ThreadSafeFunction link (#1172) (Feng Yu)
  • [10b440fe27] - src: reformat all code (Kevin Eady) #1160
  • [33e402971e] - test: Add condition for window to find eslint (#1176) (Jack)
  • [d53843b83b] - test: add missing value tests (JckXia) #1170

2022-05-02 Version 5.0.0, @NickNaso

Notable changes:

API

  • Marked methods of wrapper classes const.
  • Enabled wrapping Napi namespace with custom namespace.
  • Added an override to Napi::Function::Call to call it with a c-style array of Napi::Value's.
  • Some other minor fixes.

TEST

  • Improved the test framework. Added the possibility to run subsets of tests more easily.
  • Added test for Napi::AsyncContext class.
  • Fixed ramdom failure on test for Napi::ThreadSafeFunction e Napi::TypedThreadSafeFunction class.
  • Fixed compilation problem on debian 8 system.
  • Added test for Napi::Object::Set() method.

Documentation

  • Added some clarifications for Napi::ClassPropertyDescriptor.
  • Added clarification about weak reference for Napi::ObjectWrap.
  • Some minor fixes all over the documentation.

TOOL

  • Fixed eslint configuration.
  • Fixed CI configuration for Windows.
  • Enabled pre-commit ClangFormat on Windows.

Commits

  • [f32db917f3] - Add test coverage for async contexts (#1164) (Jack)
  • [24455f88af] - src: check for tsfn in conditional_variable wait (Kevin Eady) #1168
  • [40ed7ce409] - src: fix regression introduced by #874 (Michael Dawson)
  • [9bea434326] - doc: added some comments to ClassPropertyDescriptor. (#1149) (Nicola Del Gobbo)
  • [57c212e15f] - buld: Enable running pre-commit ClangFormat on Win (Vladimir Morozov)
  • [8c46a9501a] - doc: clarify ObjectWrap weak ref behavior (#1155) (Alba Mendez)
  • [01274966d5] - build: run Windows CI only on nondeprecated build configurations (#1152) (Darshan Sen)
  • [b8449e17e0] - src: mark methods of wrapper classes const (Nikolai Vavilov) #874
  • [5e2c1f24f8] - lint: set sourceType to 'script' (#1141) (Anna Henningsen)
  • [da8af20152] - doc: mention Napi::Env arg for Finalization callback (#1139) (extremeheat)
  • [5b51864a39] - src: enable wrapping Napi namespace with custom namespace (#1135) (Anna Henningsen)
  • [c54aeef5fd] - Add Function::Call Napi::Value override (#1026) (rgerd)
  • [e906b5a7ce] - test: fix compilation problem on debian 8 (NickNaso) #1138
  • [5790c55784] - src: do not use non-static class member for constant value (#1134) (Anna Henningsen)
  • [b7659db945] - Merge pull request #1130 from meixg/main (Jack)
  • [a840d51d21] - Add test case for Object Set using uint32 as key (meixg)
  • [2c88a7ec4c] - Merge pull request #1132 from JckXia/test-wfl-run (Jack)
  • [d3a5ed3869] - Revert "window CI to running on 2019" (JckXia)
  • [cee899ade5] - src: allow customization of ObjectWrap behavior (Aaron Meriwether) #1125
  • [91879b4082] - remove window-latest to debug (JckXia)
  • [1593ef46ee] - Testing CI run (JckXia)
  • [744c8d2410] - test: enhance the test framework (Deepak Rajamohan)

2022-01-21 Version 4.3.0, @NickNaso

Notable changes:

API

  • Added iterator for Napi::Object.
  • Fixed usage of napi_extended_error_info in Napi::Error::New().
  • Added unwrapping logic to handle graceful error handling for primitives.

TEST

  • Removed travis config.
  • Updated compiler used for testing.
  • Added BigInt value test.
  • Minor fixes all overtest suite.

Documentation

  • Documentation of iterator for Napi::Object.
  • Minor fixes all over documentation.

Commits

  • [7046834305] - Update to use recent version of stale action (Michael Dawson)
  • [293c7327ad] - Merge pull request #1075 from JckXia/handle-error-thrown (Jack)
  • [706b19986d] - test: create tools/eslint-format (Doni Rubiagatra) #1080
  • [e0567d098a] - Update documents (JckXia)
  • [691813842e] - Refactor code. Using hard coded string instead of using symbol (JckXia)
  • [7423cc5025] - Update object_wrap.md (#1094) (Alexander Floh)
  • [5aab27e6e1] - doc: add blurb about SetInstanceData (Gabriel Schulhof)
  • [e439222fe6] - test: add bigint value test (WenheLI) #1096
  • [0dfa89f4ef] - doc: document object iterators (#1090) (Darshan Sen)
  • [04b26a9d9b] - test: add first set of func Ref tests (JckXia) #1035
  • [a0b3fe9197] - Replace magic value with symbol (JckXia)
  • [173c5bc9d9] - Update PR based on review comments (JckXia)
  • [02bcfbccfd] - Update doc and appending GUID to object property (JckXia)
  • [c89f0bfb0b] - Remove un-necessary comment/iostream and updated docs to reflect on limitations with this impl (JckXia)
  • [ed4d1c51c4] - Added unwrapping logic to handle graceful error handling for primitives (JckXia)
  • [4663453eae] - src: fix usage of napi_extended_error_info in Error::New() (Darshan Sen) #1092
  • [cb228418e6] - doc: fix typo in TypedThreadSafeFunction example (#1083) (Tobias Nießen)
  • [b70acdda1f] - test: remove travis config (#1082) (Michael Dawson)
  • [1404b7cbea] - test: update compiler used for testing (#1079) (Michael Dawson)
  • [4351bffd53] - doc: fixup to meet lint rules (Michael Dawson) #1077
  • [bd8f6e6d1a] - src: add iterator for Object (Darshan Sen)
  • [d8fc7b869a] - lint: add eslint based on config-semistandard (#1067) (Doni Rubiagatra)

2021-09-17 Version 4.2.0, @NickNaso

Notable changes:

API

  • Allow creating Function with move-only functor.
  • Fixed casts to not be undefined behavior.

TEST

  • Fixed the way to enable C++ exceptions.
  • Run tests with options to prefix build root path.

Documentation

  • Fixed documentation about how to enable C++ exception.
  • Minor fixes all over documentation.

Commits

  • [2dc1f5b66c] - Merge pull request #1065 from strager/move-only-functor (Nicola Del Gobbo)
  • [2b57a4aa4c] - src: fix casts to not be undefined behavior (Anna Henningsen) #1070
  • [76de4d8222] - docs: fix typos (#1068) (todoroff)
  • [22a2f3c926] - docs: fix typo and formatting (#1062) (strager)
  • [62b666c34c] - test: run tests with opts to prefix bld root path (Deepak Rajamohan) #1055
  • [cbac3aac5d] - test: standardize unit test file names (Deepak Rajamohan) #1056
  • [3e5897a78b] - src,test: allow creating Function with move-only functor (Matthew "strager" Glazar)
  • [da2e754a02] - test: fix errors reported by newer compiler (Michael Dawson)
  • [9aaf3b1324] - doc: fix documentation about how to enable C++ exception (#1059) (Nicola Del Gobbo) #1059
  • [b2f861987f] - test: fixed the way to enable C++ exceptions. (#1061) (Nicola Del Gobbo) #1061

2021-08-25 Version 4.1.0, @NickNaso

Notable changes:

API

  • Napi::Reference updated the default value to reflect the most possible values when there are any errors occurred on napi_reference_unref.
  • Added the check for nullpointer on Napi::String initialization.
  • Added the wraps for napi_add_env_cleanup_hook and napi_remove_env_cleanup_hook.
  • Added Napi::Maybe<T> class to handle pending exception when cpp exception disabled.

TEST

  • Added first set of tests for Napi::Symbol.
  • Updated test suite to avoid parallel running.

Documentation

  • Updated example for context sensitivity.

Commits

  • [3615041423] - src: return Maybe on pending exception when cpp exception disabled (legendecas) #927
  • [10564a43c6] - src: add AddCleanupHook (Kevin Eady) #1014
  • [a459f5cc8f] - doc: update tests to avoid running in parallel (Michael Dawson) #1024
  • [6697c51d1d] - src,test: fix up null char * exception thrown (Gabriel Schulhof) #1019
  • [e02e8a4ce3] - test: add first set of symbol tests (JckXia) #972
  • [da50b51398] - test: dd check for nullptr inside String init (JckXia) #1015
  • [627dbf3c37] - doc: update examples for context sensitivity (Kevin Eady) #1013
  • [37a9b8e753] - src: set default return value of Reference Ref/Unref to 0 (legendecas) #1004

2021-06-15 Version 4.0.0, @NickNaso

Notable changes:

API

  • Fixed a crashing issue in Napi::Error::ThrowAsJavaScriptException introducing the preprocessor directive NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS.
  • Fixed compilation problem for GCC 11 and C++20.

TEST

  • Added test for function reference call and contructor.

Documentation

  • Updated the oldest Node.js version supported from 10.x to 12.x.

Commits

  • [028107f686] - src: fix Error::ThrowAsJavaScriptException crash (rudolftam) #975
  • [fed13534c5] - src: fix gcc-11 c++20 compilation (Kevin Eady) #1009
  • [b75afc4d29] - test: function reference call & construct (legendecas) #1005

2021-05-28 Version 3.2.1, @NickNaso

Notable changes:

Documentation

  • Fixed documentation about the oldest Node.js version supported.

Commits

  • [6d41ee5a3a] - Fixed readme for new release. (NickNaso)

2021-05-17 Version 3.2.0, @NickNaso

Notable changes:

API

  • Remove unnecessary symbol exposure.
  • Fixed leak in Napi::ObjectWrap instance for getter and setter method.
  • Added Napi::Object::Freeze and Napi::object::Seal methods.
  • Napi::Reference is now copyable.

Documentation

  • Added docuemtnation for Napi::Object::PropertyLValue.
  • Changed all N-API references to Node-API.
  • Some minor corrections all over the documentation.

TEST

  • Added tests relating to fetch property from Global Object.
  • Added addtiona tests for Napi::Object.
  • Added test for Napi::Function contructors.
  • Fixed intermittent failure for Napi::ThreadSafeFunction test.
  • Some minor corrections all over the test suite.

TOOL

  • Added Node.js v16.x to CI.
  • Added CI configuration for Windows.
  • Some fixex on linter command.

Commits

  • [52721312f6] - docs: add napi-rs iin Other Bindings section (#999) (LongYinan)
  • [78a6570a42] - doc: fix typo in code example (#997) (Tobias Nießen)
  • [da3bd5778f] - test: fix undoc assumptions about the timing of tsfn calls (legendecas) #995
  • [410cf6a81e] - src: return bool on object freeze and seal (#991) (legendecas)
  • [93f1898312] - src: return bool on object set and define property (#977) (legendecas)
  • [331c2ee274] - build: add Node.js v16.x to CI (#983) (legendecas)
  • [b6f5eb15e6] - test: run test suites with helpers (legendecas) #976
  • [fbcdf00ea0] - test: rename misspelled parameters (Tobias Nießen) #973
  • [63a6c32e80] - test: fix intermittent TSFN crashes (Kevin Eady) #974
  • [8f120b033f] - fix: key for wapping drawing's system condition (#970) (Kévin VOYER)
  • [1c9d528d66] - doc: correct struct definition (#969) (Darshan Sen)
  • [5e64d1fa61] - Added badges for Node-API v7 and v8. (#954) (Nicola Del Gobbo)
  • [6ce629b3fa] - src: add pull request template (#967) (Michael Dawson)
  • [98126661af] - Update CONTRIBUTING.md (#966) (Michael Dawson)
  • [77350eee98] - src: added Freeze and Seal method to Object class. (NickNaso) #955
  • [bc5147cc4a] - Finished tests relating to fetch property from Global Object (JckXia)
  • [0127813111] - doc: unambiguously mark deprecated signatures (Tobias Nießen) #942
  • [787e216105] - doc: rename N-API with Node-API (Darshan Sen) #951
  • [628023689a] - src: rename N-API with Node-API on comments (NickNaso) #953
  • [5c6391578f] - build: add CI configuration for Windows (NickNaso) #948
  • [8ef07251ec] - doc: added some warnings for buffer and array buffer factory method. (#929) (Nicola Del Gobbo)
  • [6490b1f730] - doc: sync Object::Set value arg with Value::From (#933) (Tobias Nießen)
  • [7319a0d7a2] - Fix tab indent (#938) (Tobias Nießen)
  • [1916cb937e] - chore: fixup linter commands (#940) (legendecas)
  • [fc4585fa23] - test: dd tests for Function constructors (JoseExposito) #937
  • [87b7aae469] - doc: warn about SuppressDestruct() (#926) (Anna Henningsen)
  • [71494a49a3] - src,doc: refactor to replace typedefs with usings (Darshan Sen) #910
  • [298ff8d9d2] - test: add additional tests for Object (JoseExposito) #923
  • [8a1147b430] - revert: src: add additional tests for Function (Michael Dawson)
  • [bb56ffaa6f] - doc: fix documentation for object api (Nicola Del Gobbo) #931
  • [3b8bddab49] - src: add additional tests for Function (José Expósito) #928
  • [74ab50c775] - src: allow references to be copyable in APIs (legendecas) #915
  • [929709d0fe] - doc: add propertylvalue.md (#925) (Gabriel Schulhof)
  • [69d0d98be4] - fixup (Anna Henningsen)
  • [46e41d961b] - fixup (Anna Henningsen)
  • [1af1642fb7] - doc: warn about SuppressDestruct() (Anna Henningsen)
  • [12c548b2ff] - tools: fix error detection (#914) (Darshan Sen)
  • [458d895d5b] - packaging: list files to be published to npm (Lovell Fuller) #889
  • [f7ed2490d4] - test: remove outdated V8 flag (Darshan Sen) #895
  • [a575a6ec60] - src: fix leak in ObjectWrap instance set/getters (Kevin Eady) #899
  • [b6e844e0b0] - doc: fix spelling of "targeted" and "targeting" (#904) (Tobias Nießen)
  • [4d856f6e91] - src: remove unnecessary symbol exposure (Gabriel Schulhof) #896
  • [f35bb7d0d7] - doc: Update GitHub URL references from 'master' to 'HEAD' (#898) (Jim Schlight)
  • [286ae215d1] - Add warning about branch rename (Michael Dawson)
  • [a4a7b28288] - Update branch references from master to main (#886) (Jim Schlight)
  • [a2ad0a107a] - docs: add NAN to N-API resource link (#880) (kidneysolo)
  • [1c040eeb63] - test: load testModules automatically (raisinten) #876
  • [bf478e4496] - src: use NAPI_NOEXCEPT macro instead of noexcept (NickNaso) #864
  • [744705f2eb] - test: refactor remove repeated execution index.js (raisinten) #839
  • [db62e3c811] - Update team members (Michael Dawson)

2020-12-17 Version 3.1.0, @NickNaso

Notable changes:

API

  • Added Napi::TypedThreadSafeFunction class that is a new implementation for thread-safe functions.
  • Fixed leak on Napi::AsyncProgressWorkerBase.
  • Fixed empty data on Napi::AsyncProgressWorker::OnProgress caused by race conditions of Napi::AsyncProgressWorker.
  • Added Napi::ArrayBuffer::Detach() and Napi::ArrayBuffer::IsDetached().
  • Fixed problem on Napi::FinalizeCallback it needs to create a Napi::HandleScope when it calls Napi::ObjectWrap::~ObjectWrap().

Documentation

  • Added documentation for Napi::TypedThreadSafeFunction.
  • Removed unsued Doxygen file.
  • Clarified when to use N-API.
  • Added support information.
  • Some minor corrections all over the documentation.

TEST

  • Added test for Napi::TypedThreadSafeFunction.
  • Fixed testing for specific N-API version.
  • Some minor corrections all over the test suite.

TOOL

  • Setup github actions for tests.
  • Added stale action.
  • Removed sudo tag from Travis CI.
  • Added clang-format.
  • Added pre-commit package for linting.

Commits

  • [ff642c5b85] - doc: fix tsfn docs to reflect true implementation (#860) (Kevin Eady)
  • [86feeebf54] - src: empty data OnProgress in AsyncProgressWorker (legendecas) #853
  • [a7fb5fb31c] - action: add stale action (#856) (Michael Dawson)
  • [fd44609885] - chore: setup github actions for tests (#854) (legendecas) #854
  • [c52ace4813] - script: fix complains that js files are not supported on npm run lint:fix (#852) (legendecas)
  • [b4a3364ad5] - doc: remove unused Doxygen file (#851) (Michael Dawson)
  • [b810466ae2] - doc: clarify when to use N-API (#849) (Michael Dawson)
  • [528b9f6832] - test: remove sudo from travis (#850) (Michael Dawson)
  • [4bb680de4e] - Remove misleading sentence (#847) (Nikolai Vavilov) #847
  • [48e6b584a3] - Merge pull request #742 from KevinEady/contexted-tsfn-api-gcc-4 (Gabriel Schulhof)
  • [d5e37210cc] - tools: print more instructions on clang-format check failed (#846) (legendecas) #846
  • [d9e11ff2c9] - doc: add support info (#843) (Michael Dawson) #843
  • [356e93d69a] - test: fixup testing for specific N-API version (#840) (Michael Dawson) #840
  • [5e5b9ce1b7] - Apply formatting changes (Kevin Eady)
  • [559ad8c0c0] - Merge remote-tracking branch 'upstream/master' into contexted-tsfn-api-gcc-4 (Kevin Eady)
  • [c24c455ced] - Rename to TypedThreadSafeFunction (Kevin Eady)
  • [63b43f4125] - test: fix buildType bug objectwrap_worker_thread (raisinten) #837
  • [6321f2ba1a] - test: fix typos in addon_build/index.js (raisinten) #838
  • [59c6a6aeb0] - fix: git-clang-format doesn't recognize no changes requested on given files (#835) (legendecas)
  • [1427b3ef78] - src: create a HandleScope in FinalizeCallback (blagoev) #832
  • [8fb5820557] - build: add incremental clang-format checks (legendecas) #819
  • [2c02d317e5] - build: add pre-commit package for linting (#823) (Kevin Eady)
  • [1b52c28eb8] - Clean up AsyncProgressWorker documentation (#831) (mastergberry)
  • [4abe7cfe30] - test: rename tsfnex test files (Kevin Eady)
  • [c9563caa25] - src: add ArrayBuffer::Detach() and ::IsDetached() (Tobias Nießen) #659
  • [c79cabaed2] - doc: avoid directing users to HTTP (#828) (Tobias Nießen)
  • [7a13f861ab] - doc: fix additional typo (Kevin Eady)
  • [7ec9741dd2] - Merge remote-tracking branch 'upstream/master' into contexted-tsfn-api-gcc-4 (Kevin Eady)
  • [f5fad239fa] - Update object_reference.md (#827) (kidneysolo)
  • [35b65712c2] - Fix: some typos in documentation (#826) (Helio Frota)
  • [8983383000] - Fix: some typos in the document (#825) (Ziqiu Zhao)
  • [826e466ef6] - Fixed example in addon.md. (#820) (nempoBu4) #820
  • [b54f5eb788] - Additional changes from review (Kevin Eady)
  • [59f27dac9a] - Fix common.gypi (Kevin Eady)
  • [151a914c99] - Apply documentation suggestions from code review (Kevin Eady)
  • [ceb27d4949] - src: fix leak in AsyncProgressWorkerBase<DataType> (Ferdinand Holzer) #795

2020-09-18 Version 3.0.2, @NickNaso

Notable changes:

API

  • Introduced include_dir for use with gyp in a scalar context.
  • Added Napi::Addon to help handle the loading of a native add-on into multiple threads and or multiple times in the same thread.
  • Concentrate callbacks provided to core N-API.
  • Make sure wrapcallback is used.

Documentation

  • Added documentation for Napi::Addon.
  • Added documentation that reports the full class hierarchy.
  • Added link to N-API tutorial website.
  • Some minor corrections all over the documentation.

TEST

  • Added tests to check the build process.
  • Refactored test for threasfafe function using async/await.
  • Converted tests that gc into async functions that await 10 ticks after each gc.
  • Some minor corrections all over the test suite.

Commits

  • [51e25f7c39] - doc: remove a file (#815) (Gabriel Schulhof)
  • [8c9f1809a2] - doc: add inheritance links and other changes (Gabriel Schulhof) #798
  • [6562e6b0ab] - test: added tests to check the build process (NickNaso) #808
  • [a13b36c96e] - test: fix the threasfafe function test (NickNaso) #807
  • [f27623ff61] - build: introduce include_dir (Lovell Fuller) #766
  • [9aceea71fc] - src: concentrate callbacks provided to core N-API (Gabriel Schulhof) #786
  • [2bc45bbffd] - test: refactor test to use async/await (Velmisov) #787
  • [518cfdcdc1] - test: test ObjectWrap destructor - no HandleScope (David Halls) #729
  • [c2cbbd9191] - doc: add link to n-api tutorial website (#794) (Jim Schlight) #794
  • [1c2a8d59b5] - doc: Added required return to example (#793) (pacop) #793
  • [cec2c76941] - src: wrap finalizer callback (Gabriel Schulhof) #762
  • [4ce40d22a6] - test: use assert.strictEqual() (Koki Nishihara) #777
  • [461e3640c6] - test: string tests together (Gabriel Schulhof) #773
  • [5af645f649] - src: add Addon<T> class (Gabriel Schulhof) #749
  • [6148fb4bcc] - Synchronise Node.js versions in Appveyor Windows CI with Travis (#768) (Lovell Fuller)

2020-07-13 Version 3.0.1, @NickNaso

Notable changes:

API

  • Fixed the usage of Napi::Reference with Napi::TypedArray.
  • Fixed Napi::ObjectWrap inheritance.

Documentation

  • Updated the example for Napi::ObjectWrap.
  • Added documentation for instance data APIs.
  • Some minor corrections all over the documentation.

TEST

  • Fixed test for Napi::ArrayBuffer and Napi::Buffer.
  • Some minor corrections all over the test suite.

Commits

  • [40c7926342] - build: ensure paths with spaces can be used (Lovell Fuller) #757
  • [ef16dfb4a2] - doc: update ObjectWrap example (Gabriel Schulhof) #754
  • [48f6762bf6] - src: add __wasm32__ guards (Gus Caplan)
  • [bd2c5ec502] - Fixes issue 745. (#748) (Nicola Del Gobbo)
  • [4c01af2d87] - Fix typo in CHANGELOG (#715) (Kasumi Hanazuki)
  • [36e1af96d5] - src: fix use of Reference with typed arrays (Michael Dawson) #726
  • [d463f02bc7] - src: fix testEnumerables on ObjectWrap (Ferdinand Holzer) #736
  • [ba7ad37d44] - src: fix ObjectWrap inheritance (David Halls) #732
  • [31504c862b] - doc: fix minor typo in object_wrap.md (#741) (Daniel Bevenius) #741
  • [beccf2145d] - test: fix up delays for array buffer test (Michael Dawson) #737
  • [45cb1d9748] - Correct AsyncProgressWorker link in README (#716) (Jeroen Janssen)
  • [381c0da60c] - doc: add instance data APIs (Gabriel Schulhof) #708

2020-04-30 Version 3.0.0, @NickNaso

Notable changes:

API

  • Napi::Object added templated property descriptors.
  • Napi::ObjectWrap added templated methods.
  • Napi::ObjectWrap the wrap is removed only on failure.
  • Napi::ObjectWrap the constructor's exceptions are gracefully handled.
  • Napi::Function added templated factory functions.
  • Added Env::RunScript method to run JavaScript code contained in a string.
  • Added templated version of Napi::Function.
  • Added benchmarking framework.
  • Added support for native addon instance data.
  • Added Napi::AsyncProgressQueueWorker api.
  • Changed the guards to NAPI_VERSION > 5.
  • Removed N-API implementation (v6.x and v8.x support).
  • Napi::AsyncWorker::OnWorkComplete and Napi::AsyncWorker::OnExecute methods are override-able.
  • Removed erroneous finalizer cleanup in Napi::ThreadSafeFunction.
  • Disabled caching in Napi::ArrayBuffer.
  • Explicitly disallow assign and copy operator.
  • Some minor corrections and improvements.

Documentation

  • Updated documentation for Napi::Object.
  • Updated documentation for Napi::Function.
  • Updated documentation for Napi::ObjectWrap.
  • Added documentation on how to add benchmark.
  • Added documentation for Napi::AsyncProgressQueueWorker.
  • Added suggestion about tags to use on NPM.
  • Added reference to N-API badges.
  • Some minor corrections all over the documentation.

TEST

  • Updated test cases for Napi::Object.
  • Updated test cases for Napi::Function.
  • Updated test cases for Napi::ObjectWrap.
  • Updated test cases for Napi::Env.
  • Added test cases for Napi::AsyncProgressQueueWorker.
  • Some minor corrections all over the test suite.

Commits

  • [187318e37f] - doc: Removed references to Node.js lower than 10.x. (#709) (Nicola Del Gobbo)
  • [9c9accfbbe] - src: add support for addon instance data (Gabriel Schulhof) #663
  • [82a96502a4] - src: change guards to NAPI_VERSION > 5 (Gabriel Schulhof) #697
  • [a64e8a5641] - ci: move travis from 13 to 14 (#707) (Gabriel Schulhof)
  • [4de23c9d6b] - doc: fix support bigint64/biguint64 guards (Yulong Wang) #705
  • [fedc8195e3] - doc: fix semicolon missing in async_worker.md (Azlan Mukhtar) #701
  • [cdb662506c] - doc: fix typo in bigint.md (#700) (Kelvin)
  • [e1a827ae29] - src: fix AsyncProgressQueueWorker compilation (#696) (Gabriel Schulhof) #696
  • [2c3d5df463] - Merge pull request #692 from kelvinhammond/patch-1 (Nicola Del Gobbo)
  • [623e876949] - Merge pull request #688 from NickNaso/badges (Nicola Del Gobbo)
  • [6c97913d1f] - Fix minor typo in object_lifetime_management.md (Kelvin)
  • [6b8dd47c55] - Added badge section to documentation. (NickNaso)
  • [89e62a9154] - doc: recommend tags of addon helpers (legendecas) #683
  • [ab018444ae] - src: implement AsyncProgressQueueWorker (legendecas) #585
  • [d43da6ac2b] - doc: add @legendecas to active member list (legendecas)
  • [cb498bbe7f] - doc: Add Napi::BigInt::New() overload for uint64_t (ikokostya)
  • [baaaa8452c] - doc: link threadsafe function from JS function (legendecas)
  • [7f56a78ff7] - objectwrap: remove wrap only on failure (Gabriel Schulhof)
  • [4d816183da] - doc: fix example code (András Timár, Dr) #657
  • [7ac6e21801] - gyp: fix gypfile name in index.js (Anna Henningsen) #658
  • [46484202ca] - test: user data in function property descriptor (Kevin Eady) #652
  • [0f8d730483] - doc: fix syntax error in example (András Timár, Dr) #650
  • [4e885069f1] - src: call napi\_remove\_wrap() in ObjectWrap dtor (Anna Henningsen) #475
  • [2fde5c3ca3] - test: update BigInt test for recent change in core (Michael Dawson) #649
  • [e8935bd8d9] - test: add test for own properties on ObjectWrap (Guenter Sandner) #645
  • [23ff7f0b24] - src: make OnWorkComplete and OnExecute override-able (legendecas) #589
  • [86384f94d3] - objectwrap: gracefully handle constructor exceptions (Gabriel Schulhof)
  • [9af69da01f] - remove N-API implementation, v6.x and v8.x support (Gabriel Schulhof) #643
  • [920d544779] - benchmark: add templated version of Function (Gabriel Schulhof) #637
  • [03759f7759] - ignore benchmark built archives (legendecas) #631
  • [5eeabb0214] - tsfn: Remove erroneous finalizer cleanup (Kevin Eady) #636
  • [9e0e0f31e4] - src: remove unnecessary forward declarations (Gabriel Schulhof) #633
  • [79deefb6f3] - src: explicitly disallow assign and copy (legendecas) #590
  • [af50ac281b] - error: do not replace pending exception (Gabriel Schulhof) #629
  • [b72f1d6978] - Disable caching in ArrayBuffer (Tobias Nießen) #611
  • [0e7483eb7b] - Fix code format in tests (Tobias Nießen) #617
  • [6a0646356d] - add benchmarking framework (Gabriel Schulhof) #623
  • [ffc71edd54] - Add Env::RunScript (Tobias Nießen) #616
  • [a1b106066e] - src: add templated function factories (Gabriel Schulhof) #608
  • [c584343217] - Add GetPropertyNames, HasOwnProperty, Delete (#615) (Tobias Nießen) #615
  • [3acc4b32f5] - Fix std::string encoding (#619) (Tobias Nießen) #619
  • [e71d0eadcc] - [doc] Fixed links to array documentation (#613) (Nicola Del Gobbo)
  • [3dfb1f0591] - Change "WG" to "team" (Tobias Nießen)
  • [ce91e14860] - objectwrap: add template methods (Dmitry Ashkadov) #604
  • [cfa71b60f7] - object: add templated property descriptors (Gabriel Schulhof) #610
  • [734725e971] - Correctly define copy assignment operators. (Rolf Timmermans)

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.

Commits

  • [c881168d49] - tsfn: add error checking on GetContext (#583) (Kevin Eady) #583
  • [24d75dd82f] - Merge pull request #588 from NickNaso/add-asyncprogress-worker-readme (Nicola Del Gobbo)
  • [aa79e37b62] - Merge pull request #587 from timrach/patch-1 (Nicola Del Gobbo)
  • [df75e08c2b] - tsfn: support direct calls to underlying napi_tsfn (Kevin Eady) #58
  • [2298dfae58] - doc: Added AsyncProgressWorker to readme (NickNaso)
  • [b3609d33b6] - Fix return type and declaration of setter callback (Tim Rach)
  • [295e560f55] - test: improve guards for experimental features (legendecas)
  • [2e71842f63] - tsfn: Implement copy constructor (Kevin Eady) #546
  • [650562cab9] - src: implement AsyncProgressWorker (legendecas) #529
  • [bdfd14101f] - src: attach data with napi_add_finalizer (Gabriel Schulhof) #577
  • [9e955a802b] - doc: change node.js to Node.js per guideline (#579) (Tobias Nießen) #579
  • [b42e21e3a9] - build: move node/6 to travis allowed failures and add node/13 (#573) (Gabriel Schulhof)
  • [8d6132f609] - doc: improve AsyncWorker docs (#571) (legendecas) #571
  • [bc8fc23627] - test: do not run TSFN tests on NAPI_VERSION < 4 (legendecas) #576
  • [bcc1d58fc4] - implement Object::AddFinalizer (Gabriel Schulhof)
  • [e9a4bcd52a] - doc: updates Make.js doc to current best practices (Jim Schlight) #558
  • [b513d1aa7a] - doc: fix return type of ArrayBuffer::Data (Tobias Nießen) #552
  • [34c11cf0a4] - src: disallow copying, double close of scopes (legendecas) #566
  • [ce139a05e8] - src: make failure of closing scopes fatal (legendecas) #566
  • [740c79823e] - src: add Env() to AsyncContext (Rolf Timmermans) #568
  • [ea9ce1c801] - tsfn: add wrappers for Ref and Unref (Kevin Eady) #561
  • [2e1769e1a3] - error: remove unnecessary if condition (legendecas) #562
  • [828f223a87] - doc: fix spelling in ObjectWrap doc (#563) (Tobias Nießen) #563
  • [dd9fa8a4a8] - doc: move Arunesh and Taylor to Emeritus (#540) (Michael Dawson) #540
  • [cf8b8415df] - doc: add Kevin to the list of collaborators (#539) (Michael Dawson) #539
  • [5d6aeae7b5] - build: enable travis for fast PR check (legendecas)
  • [6192e705cd] - src: add napi_date (Mathias Küsel) #497
  • [7b1ee96d52] - doc: update prebuild_tools.md (Nurbol Alpysbayev) #527
  • [0b4f3a5b8c] - tsfn: fix crash on releasing tsfn (legendecas) #532
  • [c3c8814d2f] - implement virutal ObjectWrap::Finalize (Michael Price) #515

2019-07-23 Version 1.7.1, @NickNaso

Notable changes:

API

  • Fixed compilation problems that happen on Node.js with N-API version less than 4.

Commits

  • [c20bcbd069] - Merge pull request #518 from NickNaso/master (Nicola Del Gobbo)
  • [6720d57253] - Create the native threadsafe_function for test only for N-API greater than 3. (NickNaso)
  • [37b6c185ad] - Fix compilation breakage on 1.7.0 (NickNaso)

2019-07-23 Version 1.7.0, @NickNaso

Notable changes:

API

  • Added Napi::ThreadSafeFunction api.
  • Added Napi::AsyncWorker::GetResult() method to Napi::AsyncWorker.
  • Added Napi::AsyncWorker::Destroy()() method to Napi::AsyncWorker.
  • Use full namespace on macros that create the errors.

Documentation

  • Added documentation about contribution philosophy.
  • Added documentation for Napi::ThreadSafeFunction.
  • Some minor corrections all over the documentation.

TEST

  • Added test case for bool operator.
  • Fixed test case for Napi::ObjectWrap.

Commits

  • [717c9ab163] - AsyncWorker: add GetResult() method (Kevin Eady) #512
  • [d9d991bbc9] - doc: add ThreadSafeFunction to main README (#513) (Kevin Eady) #513
  • [ac6000d0fd] - doc: fix minor typo (Yohei Kishimoto) #510
  • [e9fa1eaa86] - doc: document ThreadSafeFunction (#494) (Kevin Eady) #494
  • [cab3b1e2a2] - doc: ClassPropertyDescriptor example (Ross Weir) #507
  • [c32d7dbdcf] - macros: create errors fully namespaced (Gabriel Schulhof) #506
  • [0a90df2fcb] - Implement ThreadSafeFunction class (Jinho Bang)
  • [1fb540eeb5] - Use curly brackets to include node_api.h (NickNaso) #493
  • [b2b08122ea] - AsyncWorker: make callback optional (Kevin Eady) #489
  • [a0cac77c82] - Added test for bool operator (NickNaso) #490
  • [ab7d8fcc48] - src: fix objectwrap test case (Michael Dawson) #495
  • [3b6b9eb88a] - AsyncWorker: introduce Destroy() method (Gabriel Schulhof) #488
  • [f633fbd95d] - string.md: Document existing New(env, value, length) APIs (Tux3) #486
  • [aaea55eda9] - Little fix on code example (Nicola Del Gobbo) #470
  • [e1cf9a35a1] - Use Value::IsEmpty to check for empty value (NickNaso) #478
  • [3ad5dfc7d9] - Fix link (Alba Mendez) #481
  • [a3b4d99c45] - doc: Add contribution philosophy doc (Hitesh Kanwathirtha)
  • [36863f087b] - doc: refer to TypedArray and ArrayBuffer from Array (Gabriel "|Nix|" Schulhof) #465

2019-04-03 Version 1.6.3, @NickNaso

Notable changes:

API

  • Added SuppressDestruct method to Napi::AsyncWorker.
  • Added new build targets for debug.
  • Exposed macros that throw errors.
  • Fixed memory leaks caused by callback data when a napi error occurs.
  • Fixed missing void *data usage in Napi::PropertyDescriptors.

Documentation

  • Some minor corrections all over the documentation.

Commits

  • [83b41c2fe4] - Document adding -fvisibility=hidden flag for macOS users (Nicola Del Gobbo) #460
  • [1ed7ad8769] - doc: correct return type of Int32Value to int32_t (Bill Gallafent) #459
  • [b0f6b601aa] - src: add AsyncWorker destruction suppression (Gabriel Schulhof) #407
  • [72b1975cff] - doc: fix links to the Property Descriptor docs (Ryuichi Okumura) #458
  • [fcfc612728] - build: new build targets for debug purposes (Jinho Bang) #186
  • [c629553cd7] - doc: minor doc corrections and clarifications (Bruce A. MacNaughton) #426
  • [7b87e0b999] - doc: update number.md (Bernardo Heynemann) #436
  • [fcf173d2a1] - src: expose macros that throw errors (Gabriel Schulhof) #448
  • [b409a2f987] - package: add npm search keywords (Sam Roberts) #452
  • [0bc7987806] - doc: fix references to Weak and Persistent (Jake Barnes) #428
  • [ad6f569f85] - doc: dix typo (Abhishek Kumar Singh) #435
  • [28df833a49] - Merge pull request #441 from jschlight/master (Jim Schlight)
  • [4921e74d83] - Rearranges names to be alphabetical (Jim Schlight)
  • [48220335b0] - Membership review update (Jim Schlight)
  • [44f0695533] - Merge pull request #394 from NickNaso/create_release (Nicola DelGobbo)
  • [fa49d68416] - doc: fix some Finalizer signatures (Philipp Renoth) #414
  • [020ac4a628] - src: make Object::GetPropertyNames() const (Philipp Renoth)#415
  • [91eaa6f4cb] - src: fix callbackData leaks on error napi status (Philipp Renoth) #417
  • [0b40275752] - src: fix noexcept control flow issues (Philipp Renoth) #420
  • [c1ff2936f9] - src: fix missing void*data usage in PropertyDescriptors (Luciano Martorella) #374

2018-11-29 Version 1.6.2, @NickNaso

Notable changes:

API

  • Fixed selection logic for version 6.x.

Commmits

  • [07a0fc4e95] - src: fix selection logic for 6.x (Michael Dawson) #402

2018-11-14 Version 1.6.1, @NickNaso

Notable changes:

Documentation

  • Updated links for examples to point to node-addon-examples repo.
  • Fixed typos on some parts of documentation.

API

  • Removed unused member on Napi::CallbackScope.
  • Enabled Napi::CallbackScope only with N-API v3.

Commits

  • [e7cd292a74] - src: remove unused CallbackScope member (Gabriel Schulhof) #391
  • [d47399fe25] - src: guard CallbackScope with N-API v3 (Michael Dawson) #395
  • [29a0262ab9] - doc: fix typo (Dongjin Na) #385
  • [b6dc15b88d] - doc: make links point to node-addon-examples repo (Nicola Del Gobbo) #389

2018-11-02 Version 1.6.0, @NickNaso

Notable changes:

Documentation

  • Improved documentation about ABI stability.

API

  • Add Napi::CallbackScope class that help to have the equivalent of the scope associated with a callback in place when making certain N-API calls

TEST

  • Added tests for Napi::Array class.
  • Added tests for Napi::ArrayBuffer class.

Commits

  • [8ce605c657] - build: avoid using package-lock.json (Jaeseok Yoon) #359
  • [fa3a6150b3] - src: use MakeCallback() -> Call() in AsyncWorker (Jinho Bang) #361
  • [2342415463] - test: create test objects in the stack instead of the heap (Dongjin Na) #371
  • [67b7db0a6f] - test: write tests for Array class (Jaeseok Yoon) #363
  • [729f6dc4ee] - test: add arraybuffer tests (Dongjin Na) #369
  • [405f3e5b5b] - src: implement CallbackScope class (Jinho Bang) #362
  • [015d95312f] - doc: fix Napi::Reference link (Gentilhomme) #365
  • [fd65078e3c] - README.md: link to new ABI stability guide (Gabriel Schulhof) #367
  • [ffebf9ba9a] - Updates for release 1.5.0 (NickNaso)

2018-10-03 Version 1.5.0, @NickNaso

Notable changes:

Documentation

  • Completed the documentation to cover all the API surface.
  • Numerous fixes to make documentation more consistent in all of its parts.

API

  • Add Napi::AsyncContext class to handle asynchronous operation.
  • Add Napi::BigInt class to work with BigInt type.
  • Add Napi::VersionManagement class to retrieve the versions of Node.js and N-API.
  • Fix potential memory leaks.
  • DataView feature is enabled by default
  • Add descriptor for Symbols
  • Add new methods on Napi::FunctionReference.
  • Add the possibility to retrieve the environment on Napi::Promise::Deferred

TOOL

  • Add tool to check if a native add-on is built using N-API

TEST

  • Start to increase the test coverage
  • Fix in the test suite to better handle the experimental features that are not yet backported in the previous Node.js version.

Commits

  • [2009c019af] - Merge pull request #292 from devsnek/feature/bigint (Gus Caplan)
  • [e44aca985e] - add bigint class (Gus Caplan)
  • [a3951ab973] - Add documentation for Env(). (Rolf Timmermans) #318
  • [a6f7a6ad51] - Add Env() to Promise::Deferred. (Rolf Timmermans)
  • [0097e96b92] - Fixed broken links for Symbol and String (NickNaso)
  • [b0ecd38d76] - Fix Code of conduct link properly (#323) (Jake Yoon) #323
  • [223474900f] - doc: update Version management (Dongjin Na) #360
  • [4f76262a10] - doc: some fix on Napi::Boolean documentation (NickNaso) #354
  • [78374f72d2] - doc: number documentation (NickNaso) #356
  • [51ffe453f8] - doc: doc cleanup (NickNaso) #353
  • [fc11c944b2] - doc: major doc cleanup (NickNaso) #335
  • [100d0a7cb2] - doc: first pass on objectwrap documentation (NickNaso) #321
  • [c7d54180ff] - doc: the Napi::ObjectWrap example does not compile (Arnaud Botella) #339
  • [7cdd78726a] - doc: added cpp highlight for string.md (Jaeseok Yoon) #329
  • [8ed29f547c] - doc: add blurb about ABI stability (Gabriel Schulhof) #326
  • [757eb1f5a3] - doc: add function and function reference doc (NickNaso) #299
  • [2885c18591] - doc: Create changelog for release 1.4.0 (Nicola Del Gobbo)
  • [917bd60baa] - src: remove TODOs by fixing memory leaks (Gabriel Schulhof) #343
  • [dfcb93945f] - src: implement AsyncContext class (Jinho Bang) #252
  • [211ed38d0d] - src: make 'nothing' target a static library (Gabriel Schulhof) #348
  • [97c4ab5cf2] - src: add Call and MakeCallback that accept cargs (NickNaso) #344
  • [b6e2d92c09] - src: enable DataView feature by default (Jinho) #331
  • [0a00e7c97b] - src: implement missing descriptor defs for symbols (Philipp Renoth) #280
  • [38e01b7e3b] - src: first pass on adding version management apis (NickNaso) #325
  • [79ee8381d2] - src: fix compile failure in test (Michael Dawson) #345
  • [4d92a6066f] - src: Add ObjectReference test case (Anisha Rohra) #212
  • [779560f397] - test: add operator overloading tests in Number (Your Name) #355
  • [73fed84ceb] - test: add ability to control experimental tests (Michael Dawson) #350
  • [14c69abd46] - test: write tests for Boolean class (Jaeseok Yoon) #328
  • [2ad47a83b1] - test: explicitly cast to uint32_t in test (Gabriel Schulhof) #341
  • [622ffaea76] - test: Tighten up compiler warnings (Mikhail Cheshkov) #315
  • [fd3c37b0f2] - tools: add tool to check for N-API modules (Gabriel Schulhof) #346

2018-07-19 Version 1.4.0, @NickNaso

Notable changes:

Documentation

  • Numerous additions to the documentation, filling out coverage of API surface

API

  • Add resource parameters to AsyncWorker constructor
  • Add memory management feature

Commits

  • [7dc5ac8bc3] - doc: update metadata for release (Nicola Del Gobbo)
  • [d68e86adb4] - doc: Added documentation for PropertyDescriptor (Anisha Rohra) #309
  • [968a5f2000] - doc: Add documentation for ObjectReference.md (Anisha Rohra) #307
  • [908cdc314c] - doc: add TypedArray and TypedArrayOf (Kyle Farnung) #305
  • [2ff776ffe3] - backport node::Persistent (Gabriel Schulhof) #300
  • [98161970c9] - Backport perf, crash and exception handling fixes (Gabriel Schulhof) #295
  • [dd1191e086] - test: fix asyncworker test so it runs on 6.x (Michael Dawson) #298
  • [11697fcecd] - doc: ArrayBuffer and Buffer documentation (Kyle Farnung) #256
  • [605aa2babf] - Add memory management feature (NickNaso) #286
  • [86be13a611] - doc: Fix HandleScope docs (Ben Berman) #287
  • [90f92c4dc0] - doc: Update broken links in README.md (Hitesh Kanwathirtha) #290
  • [c2a620dc11] - doc: Clarify positioning versus N-API (Michael Dawson) #288
  • [6cff890ee5] - doc: Fix typo in docs (Ben Berman) #284
  • [7394bfd154] - doc: Fix typo in docs (Ben Berman) #285
  • [12b2cdeed3] - fix test files (Kyle Farnung) #257
  • [9ab6607242] - doc: Update Doc Version Number (joshgarde) #277
  • [e029a076c6] - doc: First pass at basic Node Addon API docs (Hitesh Kanwathirtha) #268
  • [74ff79717e] - doc: fix link to async_worker.md (Michael Dawson)
  • [5a63f45eda] - doc: First step of error and async doc (NickNaso) #272
  • [9d38f61afb] - doc: New Promise and Reference docs (Jim Schlight) #243
  • [43ff9fa836] - doc: Updated Object documentation (Anisha Rohra) #254
  • [b197f7cc8b] - doc: minor typos (Nick Soggin) #248
  • [4b8918b352] - Add resource parameters to AsyncWorker constructor (Jinho Bang) #253
  • [1ecf7c19b6] - doc: fix wrong link in readme (miloas) #255
  • [a750ed1932] - release: updates to metadata for next release (Michael Dawson)

2018-05-08 Version 1.3.0, @mhdawson

Notable changes:

Documentation

  • Added documentation for Scopes
  • Added documentation for migration from NAN
  • Update documentation to better explain the use of NODE_ADDON_API

API

  • Implement data manipulation methods for dataview
  • Use built-in N-API on Node.js >= 6.14.2
  • Value
    • Added IsExternal()
    • IsObject() allow functions
  • String
    • Fixed initialization of std::string to nullptr

Tests

  • Fix test failures on linuxOne and AIX
  • Added basic tests for Scopes
  • Fix MSVC warning C4244 in tests

Commits

  • [386c2aeb74] - test: remove dep on later C++ feature (Michael Dawson) nodejs#267
  • [10697734da] - Use built-in N-API on Node.js >= 6.14.2 (Gabriel Schulhof)
  • [75086da273] - test: add basic tests and doc for scopes (Michael Dawson) nodejs#250
  • [341dbd25d5] - doc: update blurb explaining NODE_ADDON_API (Gabriel Schulhof) nodejs#251
  • [cf6c93e4ee] - don't try to escape null (Michael Dawson) nodejs#245
  • [15e4b35fc2] - test: fix MSVC warning C4244 in tests (Kyle Farnung) nodejs#236
  • [7f3ca03b8e] - Create a doc for migration (Sampson Gao) nodejs#118
  • [0a2177debe] - Fix test failures on linuxOne and AIX (Jinho Bang) nodejs#232
  • [d567f4b6b5] - Added Napi::Value::IsExternal() (Eric Bickle) nodejs#227
  • [1b0f0e004a] - Update node-gyp.md (Michele Campus) nodejs#226
  • [faf19c4f7a] - Fixed initialization of std::string to nullptr (Eric Bickle) nodejs#228
  • [9c4d321b57] - Implement data manipulation methods for dataview (Jinho Bang) nodejs#218
  • [5a39fdca6f] - n-api: throw RangeError napi_create_typedarray() (Jinho Bang) nodejs#216
  • [1376377202] - Make IsObject() allow functions (Jinho Bang) nodejs#217
  • [673b59d319] - src: Initial implementation of DataView class (Jinho Bang) nodejs#205
  • [0a899bf1c5] - doc: update indication of latest version (Michael Dawson) nodejs#211
  • [17c74e5a5e] - n-api: RangeError in napi_create_dataview() (Jinho Bang) nodejs#214
  • [4058a29989] - n-api: fix memory leak in napi_async_destroy() (Jinho Bang) nodejs#213