From fd71b7798085eb44808ce6b18b2a8fb3dd12765b Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 11:28:57 +0200 Subject: [PATCH 01/17] refactor: create directory structure to organize exmaples --- .../node-addon-api/CMakeLists.txt | 0 .../async-iterator}/node-addon-api/example.cc | 0 .../async-iterator}/node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../async_pi_estimate}/nan/README.md | 0 .../async_pi_estimate}/nan/addon.cc | 0 .../async_pi_estimate}/nan/addon.js | 0 .../async_pi_estimate}/nan/async.cc | 0 .../async_pi_estimate}/nan/async.h | 0 .../async_pi_estimate}/nan/binding.gyp | 0 .../async_pi_estimate}/nan/package.json | 0 .../async_pi_estimate}/nan/pi_est.cc | 0 .../async_pi_estimate}/nan/pi_est.h | 0 .../async_pi_estimate}/nan/sync.cc | 0 .../async_pi_estimate}/nan/sync.h | 0 .../node-addon-api/README.md | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/async.cc | 0 .../async_pi_estimate}/node-addon-api/async.h | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/pi_est.cc | 0 .../node-addon-api/pi_est.h | 0 .../async_pi_estimate}/node-addon-api/sync.cc | 0 .../async_pi_estimate}/node-addon-api/sync.h | 0 .../async_work_promise}/napi/binding.c | 0 .../async_work_promise}/napi/binding.gyp | 0 .../async_work_promise}/napi/index.js | 0 .../async_work_promise}/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/worker.h | 0 .../napi/binding.c | 0 .../napi/binding.gyp | 0 .../napi/index.js | 0 .../napi/package.json | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../src/RunSimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.h | 0 .../node-addon-api/test/Test.js | 0 build_with_cmake/README.md | 33 ------------------- build_with_cmake/napi/CMakeLists.txt | 13 -------- build_with_cmake/napi/hello.c | 23 ------------- build_with_cmake/napi/hello.js | 3 -- build_with_cmake/napi/package.json | 14 -------- .../node-addon-api/CMakeLists.txt | 22 ------------- build_with_cmake/node-addon-api/hello.cc | 22 ------------- build_with_cmake/node-addon-api/hello.js | 3 -- build_with_cmake/node-addon-api/package.json | 15 --------- .../napi/binding.gyp | 0 .../napi/index.js | 0 .../napi/multiple_load.c | 0 .../napi/package.json | 0 .../node_10/binding.gyp | 0 .../node_10/index.js | 0 .../node_10/multiple_load.cc | 0 .../node_10/package.json | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/emit-from-cpp.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/src/native-emitter.cc | 0 .../node-addon-api/src/native-emitter.h | 0 .../1_hello_world}/README.md | 0 .../1_hello_world}/nan/binding.gyp | 0 .../1_hello_world}/nan/hello.cc | 0 .../1_hello_world}/nan/hello.js | 0 .../1_hello_world}/nan/package.json | 0 .../1_hello_world}/napi/binding.gyp | 0 .../1_hello_world}/napi/hello.c | 0 .../1_hello_world}/napi/hello.js | 0 .../1_hello_world}/napi/package.json | 0 .../node-addon-api-addon-class/binding.gyp | 0 .../node-addon-api-addon-class/hello.cc | 0 .../node-addon-api-addon-class/hello.js | 0 .../node-addon-api-addon-class/package.json | 0 .../1_hello_world}/node-addon-api/binding.gyp | 0 .../1_hello_world}/node-addon-api/hello.cc | 0 .../1_hello_world}/node-addon-api/hello.js | 0 .../node-addon-api/package.json | 0 .../2_function_arguments}/README.md | 0 .../2_function_arguments}/nan/addon.cc | 0 .../2_function_arguments}/nan/addon.js | 0 .../2_function_arguments}/nan/binding.gyp | 0 .../2_function_arguments}/nan/package.json | 0 .../2_function_arguments}/napi/addon.c | 0 .../2_function_arguments}/napi/addon.js | 0 .../2_function_arguments}/napi/binding.gyp | 0 .../2_function_arguments}/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../3_callbacks}/nan/addon.cc | 0 .../3_callbacks}/nan/addon.js | 0 .../3_callbacks}/nan/binding.gyp | 0 .../3_callbacks}/nan/package.json | 0 .../3_callbacks}/napi/addon.c | 0 .../3_callbacks}/napi/addon.js | 0 .../3_callbacks}/napi/binding.gyp | 0 .../3_callbacks}/napi/package.json | 0 .../3_callbacks}/node-addon-api/addon.cc | 0 .../3_callbacks}/node-addon-api/addon.js | 0 .../3_callbacks}/node-addon-api/binding.gyp | 0 .../3_callbacks}/node-addon-api/package.json | 0 .../4_object_factory}/nan/addon.cc | 0 .../4_object_factory}/nan/addon.js | 0 .../4_object_factory}/nan/binding.gyp | 0 .../4_object_factory}/nan/package.json | 0 .../4_object_factory}/napi/addon.c | 0 .../4_object_factory}/napi/addon.js | 0 .../4_object_factory}/napi/binding.gyp | 0 .../4_object_factory}/napi/package.json | 0 .../4_object_factory}/node-addon-api/addon.cc | 0 .../4_object_factory}/node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../5_function_factory}/nan/addon.cc | 0 .../5_function_factory}/nan/addon.js | 0 .../5_function_factory}/nan/binding.gyp | 0 .../5_function_factory}/nan/package.json | 0 .../5_function_factory}/napi/addon.c | 0 .../5_function_factory}/napi/addon.js | 0 .../5_function_factory}/napi/binding.gyp | 0 .../5_function_factory}/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../6_object_wrap}/nan/addon.cc | 0 .../6_object_wrap}/nan/addon.js | 0 .../6_object_wrap}/nan/binding.gyp | 0 .../6_object_wrap}/nan/myobject.cc | 0 .../6_object_wrap}/nan/myobject.h | 0 .../6_object_wrap}/nan/package.json | 0 .../6_object_wrap}/napi/addon.cc | 0 .../6_object_wrap}/napi/addon.js | 0 .../6_object_wrap}/napi/binding.gyp | 0 .../6_object_wrap}/napi/myobject.cc | 0 .../6_object_wrap}/napi/myobject.h | 0 .../6_object_wrap}/napi/package.json | 0 .../6_object_wrap}/node-addon-api/addon.cc | 0 .../6_object_wrap}/node-addon-api/addon.js | 0 .../6_object_wrap}/node-addon-api/binding.gyp | 0 .../6_object_wrap}/node-addon-api/myobject.cc | 0 .../6_object_wrap}/node-addon-api/myobject.h | 0 .../node-addon-api/package.json | 0 .../7_factory_wrap}/nan/addon.cc | 0 .../7_factory_wrap}/nan/addon.js | 0 .../7_factory_wrap}/nan/binding.gyp | 0 .../7_factory_wrap}/nan/myobject.cc | 0 .../7_factory_wrap}/nan/myobject.h | 0 .../7_factory_wrap}/nan/package.json | 0 .../7_factory_wrap}/napi/addon.cc | 0 .../7_factory_wrap}/napi/addon.js | 0 .../7_factory_wrap}/napi/binding.gyp | 0 .../7_factory_wrap}/napi/myobject.cc | 0 .../7_factory_wrap}/napi/myobject.h | 0 .../7_factory_wrap}/napi/package.json | 0 .../7_factory_wrap}/node-addon-api/addon.cc | 0 .../7_factory_wrap}/node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/myobject.cc | 0 .../7_factory_wrap}/node-addon-api/myobject.h | 0 .../node-addon-api/package.json | 0 .../a-first-project}/node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/lib/binding.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/hello_world.cc | 0 .../node-addon-api/test/test_binding.js | 0 .../8_passing_wrapped}/nan/addon.cc | 0 .../8_passing_wrapped}/nan/addon.js | 0 .../8_passing_wrapped}/nan/binding.gyp | 0 .../8_passing_wrapped}/nan/myobject.cc | 0 .../8_passing_wrapped}/nan/myobject.h | 0 .../8_passing_wrapped}/nan/package.json | 0 .../8_passing_wrapped}/napi/addon.cc | 0 .../8_passing_wrapped}/napi/addon.js | 0 .../8_passing_wrapped}/napi/binding.gyp | 0 .../8_passing_wrapped}/napi/myobject.cc | 0 .../8_passing_wrapped}/napi/myobject.h | 0 .../8_passing_wrapped}/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/myobject.cc | 0 .../node-addon-api/myobject.h | 0 .../node-addon-api/package.json | 0 .../node-addon-api/array_buffer_to_native.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../object-template-demo}/README.md | 0 .../object-template-demo}/nan/binding.gyp | 0 .../object-template-demo}/nan/index.js | 0 .../nan/object-template-demo.cc | 0 .../object-template-demo}/nan/package.json | 0 .../object-template-demo}/napi/binding.gyp | 0 .../object-template-demo}/napi/index.js | 0 .../napi/node-api-common.h | 0 .../napi/object-template-demo.cc | 0 .../object-template-demo}/napi/package.json | 0 .../napi/proxy-template.cc | 0 .../napi/proxy-template.h | 0 .../node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/lib/binding.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/object_wrap_demo.cc | 0 .../node-addon-api/src/object_wrap_demo.h | 0 .../node-addon-api/test/test_binding.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/typed_array_to_native.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/src/native-addon.cc | 0 .../node-addon-api/src/native-addon.h | 0 .../node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../src/promise_callback_demo.cc | 0 .../node-addon-api/test/index.js | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../napi/binding.gyp | 0 .../napi/index.js | 0 .../napi/package.json | 0 .../napi/round_trip.c | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/tsfn_object_wrap.cc | 0 .../node-addon-api/tsfn_object_wrap.js | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/example.cc | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/clock.cc | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/README.md | 0 .../node-addon-api/cPart.c | 0 .../node-addon-api/cPart.h | 0 .../node-addon-api/cppPart.cpp | 0 .../node-addon-api/index.ts | 0 .../node-addon-api/jsPart.js | 0 .../node-addon-api/napiPart.cpp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/tsconfig.json | 0 271 files changed, 148 deletions(-) rename {async-iterator => async-work/async-iterator}/node-addon-api/CMakeLists.txt (100%) rename {async-iterator => async-work/async-iterator}/node-addon-api/example.cc (100%) rename {async-iterator => async-work/async-iterator}/node-addon-api/index.js (100%) rename {async-iterator => async-work/async-iterator}/node-addon-api/package.json (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/README.md (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/addon.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/addon.js (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/async.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/async.h (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/binding.gyp (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/package.json (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/pi_est.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/pi_est.h (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/sync.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/nan/sync.h (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/README.md (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/addon.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/addon.js (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/async.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/async.h (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/binding.gyp (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/package.json (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/pi_est.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/pi_est.h (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/sync.cc (100%) rename {async_pi_estimate => async-work/async_pi_estimate}/node-addon-api/sync.h (100%) rename {async_work_promise => async-work/async_work_promise}/napi/binding.c (100%) rename {async_work_promise => async-work/async_work_promise}/napi/binding.gyp (100%) rename {async_work_promise => async-work/async_work_promise}/napi/index.js (100%) rename {async_work_promise => async-work/async_work_promise}/napi/package.json (100%) rename {async_work_promise => async-work/async_work_promise}/node-addon-api/addon.cc (100%) rename {async_work_promise => async-work/async_work_promise}/node-addon-api/binding.gyp (100%) rename {async_work_promise => async-work/async_work_promise}/node-addon-api/index.js (100%) rename {async_work_promise => async-work/async_work_promise}/node-addon-api/package.json (100%) rename {async_work_promise => async-work/async_work_promise}/node-addon-api/worker.h (100%) rename {async_work_thread_safe_function => async-work/async_work_thread_safe_function}/napi/binding.c (100%) rename {async_work_thread_safe_function => async-work/async_work_thread_safe_function}/napi/binding.gyp (100%) rename {async_work_thread_safe_function => async-work/async_work_thread_safe_function}/napi/index.js (100%) rename {async_work_thread_safe_function => async-work/async_work_thread_safe_function}/napi/package.json (100%) rename {call-js-from-async-worker-execute => async-work/call-js-from-async-worker-execute}/node-addon-api/binding.gyp (100%) rename {call-js-from-async-worker-execute => async-work/call-js-from-async-worker-execute}/node-addon-api/index.js (100%) rename {call-js-from-async-worker-execute => async-work/call-js-from-async-worker-execute}/node-addon-api/package.json (100%) rename {call-js-from-async-worker-execute => async-work/call-js-from-async-worker-execute}/node-addon-api/src/binding.cc (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/README.md (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/binding.gyp (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/package.json (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/src/RunSimpleAsyncWorker.cc (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/src/SimpleAsyncWorker.cc (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/src/SimpleAsyncWorker.h (100%) rename {napi-asyncworker-example => async-work/napi-asyncworker-example}/node-addon-api/test/Test.js (100%) delete mode 100644 build_with_cmake/README.md delete mode 100644 build_with_cmake/napi/CMakeLists.txt delete mode 100644 build_with_cmake/napi/hello.c delete mode 100644 build_with_cmake/napi/hello.js delete mode 100644 build_with_cmake/napi/package.json delete mode 100644 build_with_cmake/node-addon-api/CMakeLists.txt delete mode 100644 build_with_cmake/node-addon-api/hello.cc delete mode 100644 build_with_cmake/node-addon-api/hello.js delete mode 100644 build_with_cmake/node-addon-api/package.json rename {multiple_load => context-awareness}/napi/binding.gyp (100%) rename {multiple_load => context-awareness}/napi/index.js (100%) rename {multiple_load => context-awareness}/napi/multiple_load.c (100%) rename {multiple_load => context-awareness}/napi/package.json (100%) rename {multiple_load => context-awareness}/node_10/binding.gyp (100%) rename {multiple_load => context-awareness}/node_10/index.js (100%) rename {multiple_load => context-awareness}/node_10/multiple_load.cc (100%) rename {multiple_load => context-awareness}/node_10/package.json (100%) rename {emit_event_from_cpp => events/emit_event_from_cpp}/node-addon-api/binding.gyp (100%) rename {emit_event_from_cpp => events/emit_event_from_cpp}/node-addon-api/index.js (100%) rename {emit_event_from_cpp => events/emit_event_from_cpp}/node-addon-api/package.json (100%) rename {emit_event_from_cpp => events/emit_event_from_cpp}/node-addon-api/src/emit-from-cpp.cc (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/binding.gyp (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/index.js (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/package.json (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/src/binding.cc (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/src/native-emitter.cc (100%) rename {inherits_from_event_emitter => events/inherits_from_event_emitter}/node-addon-api/src/native-emitter.h (100%) rename {1_hello_world => general/1_hello_world}/README.md (100%) rename {1_hello_world => general/1_hello_world}/nan/binding.gyp (100%) rename {1_hello_world => general/1_hello_world}/nan/hello.cc (100%) rename {1_hello_world => general/1_hello_world}/nan/hello.js (100%) rename {1_hello_world => general/1_hello_world}/nan/package.json (100%) rename {1_hello_world => general/1_hello_world}/napi/binding.gyp (100%) rename {1_hello_world => general/1_hello_world}/napi/hello.c (100%) rename {1_hello_world => general/1_hello_world}/napi/hello.js (100%) rename {1_hello_world => general/1_hello_world}/napi/package.json (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api-addon-class/binding.gyp (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api-addon-class/hello.cc (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api-addon-class/hello.js (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api-addon-class/package.json (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api/binding.gyp (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api/hello.cc (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api/hello.js (100%) rename {1_hello_world => general/1_hello_world}/node-addon-api/package.json (100%) rename {2_function_arguments => general/2_function_arguments}/README.md (100%) rename {2_function_arguments => general/2_function_arguments}/nan/addon.cc (100%) rename {2_function_arguments => general/2_function_arguments}/nan/addon.js (100%) rename {2_function_arguments => general/2_function_arguments}/nan/binding.gyp (100%) rename {2_function_arguments => general/2_function_arguments}/nan/package.json (100%) rename {2_function_arguments => general/2_function_arguments}/napi/addon.c (100%) rename {2_function_arguments => general/2_function_arguments}/napi/addon.js (100%) rename {2_function_arguments => general/2_function_arguments}/napi/binding.gyp (100%) rename {2_function_arguments => general/2_function_arguments}/napi/package.json (100%) rename {2_function_arguments => general/2_function_arguments}/node-addon-api/addon.cc (100%) rename {2_function_arguments => general/2_function_arguments}/node-addon-api/addon.js (100%) rename {2_function_arguments => general/2_function_arguments}/node-addon-api/binding.gyp (100%) rename {2_function_arguments => general/2_function_arguments}/node-addon-api/package.json (100%) rename {3_callbacks => general/3_callbacks}/nan/addon.cc (100%) rename {3_callbacks => general/3_callbacks}/nan/addon.js (100%) rename {3_callbacks => general/3_callbacks}/nan/binding.gyp (100%) rename {3_callbacks => general/3_callbacks}/nan/package.json (100%) rename {3_callbacks => general/3_callbacks}/napi/addon.c (100%) rename {3_callbacks => general/3_callbacks}/napi/addon.js (100%) rename {3_callbacks => general/3_callbacks}/napi/binding.gyp (100%) rename {3_callbacks => general/3_callbacks}/napi/package.json (100%) rename {3_callbacks => general/3_callbacks}/node-addon-api/addon.cc (100%) rename {3_callbacks => general/3_callbacks}/node-addon-api/addon.js (100%) rename {3_callbacks => general/3_callbacks}/node-addon-api/binding.gyp (100%) rename {3_callbacks => general/3_callbacks}/node-addon-api/package.json (100%) rename {4_object_factory => general/4_object_factory}/nan/addon.cc (100%) rename {4_object_factory => general/4_object_factory}/nan/addon.js (100%) rename {4_object_factory => general/4_object_factory}/nan/binding.gyp (100%) rename {4_object_factory => general/4_object_factory}/nan/package.json (100%) rename {4_object_factory => general/4_object_factory}/napi/addon.c (100%) rename {4_object_factory => general/4_object_factory}/napi/addon.js (100%) rename {4_object_factory => general/4_object_factory}/napi/binding.gyp (100%) rename {4_object_factory => general/4_object_factory}/napi/package.json (100%) rename {4_object_factory => general/4_object_factory}/node-addon-api/addon.cc (100%) rename {4_object_factory => general/4_object_factory}/node-addon-api/addon.js (100%) rename {4_object_factory => general/4_object_factory}/node-addon-api/binding.gyp (100%) rename {4_object_factory => general/4_object_factory}/node-addon-api/package.json (100%) rename {5_function_factory => general/5_function_factory}/nan/addon.cc (100%) rename {5_function_factory => general/5_function_factory}/nan/addon.js (100%) rename {5_function_factory => general/5_function_factory}/nan/binding.gyp (100%) rename {5_function_factory => general/5_function_factory}/nan/package.json (100%) rename {5_function_factory => general/5_function_factory}/napi/addon.c (100%) rename {5_function_factory => general/5_function_factory}/napi/addon.js (100%) rename {5_function_factory => general/5_function_factory}/napi/binding.gyp (100%) rename {5_function_factory => general/5_function_factory}/napi/package.json (100%) rename {5_function_factory => general/5_function_factory}/node-addon-api/addon.cc (100%) rename {5_function_factory => general/5_function_factory}/node-addon-api/addon.js (100%) rename {5_function_factory => general/5_function_factory}/node-addon-api/binding.gyp (100%) rename {5_function_factory => general/5_function_factory}/node-addon-api/package.json (100%) rename {6_object_wrap => general/6_object_wrap}/nan/addon.cc (100%) rename {6_object_wrap => general/6_object_wrap}/nan/addon.js (100%) rename {6_object_wrap => general/6_object_wrap}/nan/binding.gyp (100%) rename {6_object_wrap => general/6_object_wrap}/nan/myobject.cc (100%) rename {6_object_wrap => general/6_object_wrap}/nan/myobject.h (100%) rename {6_object_wrap => general/6_object_wrap}/nan/package.json (100%) rename {6_object_wrap => general/6_object_wrap}/napi/addon.cc (100%) rename {6_object_wrap => general/6_object_wrap}/napi/addon.js (100%) rename {6_object_wrap => general/6_object_wrap}/napi/binding.gyp (100%) rename {6_object_wrap => general/6_object_wrap}/napi/myobject.cc (100%) rename {6_object_wrap => general/6_object_wrap}/napi/myobject.h (100%) rename {6_object_wrap => general/6_object_wrap}/napi/package.json (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/addon.cc (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/addon.js (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/binding.gyp (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/myobject.cc (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/myobject.h (100%) rename {6_object_wrap => general/6_object_wrap}/node-addon-api/package.json (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/addon.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/addon.js (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/binding.gyp (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/myobject.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/myobject.h (100%) rename {7_factory_wrap => general/7_factory_wrap}/nan/package.json (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/addon.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/addon.js (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/binding.gyp (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/myobject.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/myobject.h (100%) rename {7_factory_wrap => general/7_factory_wrap}/napi/package.json (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/addon.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/addon.js (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/binding.gyp (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/myobject.cc (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/myobject.h (100%) rename {7_factory_wrap => general/7_factory_wrap}/node-addon-api/package.json (100%) rename {a-first-project => general/a-first-project}/node-addon-api/README.md (100%) rename {a-first-project => general/a-first-project}/node-addon-api/binding.gyp (100%) rename {a-first-project => general/a-first-project}/node-addon-api/lib/binding.js (100%) rename {a-first-project => general/a-first-project}/node-addon-api/package.json (100%) rename {a-first-project => general/a-first-project}/node-addon-api/src/hello_world.cc (100%) rename {a-first-project => general/a-first-project}/node-addon-api/test/test_binding.js (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/addon.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/addon.js (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/binding.gyp (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/myobject.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/myobject.h (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/nan/package.json (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/addon.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/addon.js (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/binding.gyp (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/myobject.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/myobject.h (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/napi/package.json (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/addon.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/addon.js (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/binding.gyp (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/myobject.cc (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/myobject.h (100%) rename {8_passing_wrapped => js-to-native-conversion/8_passing_wrapped}/node-addon-api/package.json (100%) rename {array_buffer_to_native => js-to-native-conversion/array_buffer_to_native}/node-addon-api/array_buffer_to_native.cc (100%) rename {array_buffer_to_native => js-to-native-conversion/array_buffer_to_native}/node-addon-api/binding.gyp (100%) rename {array_buffer_to_native => js-to-native-conversion/array_buffer_to_native}/node-addon-api/index.js (100%) rename {array_buffer_to_native => js-to-native-conversion/array_buffer_to_native}/node-addon-api/package.json (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/README.md (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/nan/binding.gyp (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/nan/index.js (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/nan/object-template-demo.cc (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/nan/package.json (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/binding.gyp (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/index.js (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/node-api-common.h (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/object-template-demo.cc (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/package.json (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/proxy-template.cc (100%) rename {object-template-demo => js-to-native-conversion/object-template-demo}/napi/proxy-template.h (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/README.md (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/binding.gyp (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/lib/binding.js (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/package.json (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/src/object_wrap_demo.cc (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/src/object_wrap_demo.h (100%) rename {object-wrap-demo => js-to-native-conversion/object-wrap-demo}/node-addon-api/test/test_binding.js (100%) rename {typed_array_to_native => js-to-native-conversion/typed_array_to_native}/node-addon-api/binding.gyp (100%) rename {typed_array_to_native => js-to-native-conversion/typed_array_to_native}/node-addon-api/index.js (100%) rename {typed_array_to_native => js-to-native-conversion/typed_array_to_native}/node-addon-api/package.json (100%) rename {typed_array_to_native => js-to-native-conversion/typed_array_to_native}/node-addon-api/typed_array_to_native.cc (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/binding.gyp (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/index.js (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/package.json (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/src/binding.cc (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/src/native-addon.cc (100%) rename {function-reference-demo => references-and-handle-scope/function-reference-demo}/node-addon-api/src/native-addon.h (100%) rename {promise-callback-demo => threadsafe-function/promise-callback-demo}/node-addon-api/README.md (100%) rename {promise-callback-demo => threadsafe-function/promise-callback-demo}/node-addon-api/binding.gyp (100%) rename {promise-callback-demo => threadsafe-function/promise-callback-demo}/node-addon-api/package.json (100%) rename {promise-callback-demo => threadsafe-function/promise-callback-demo}/node-addon-api/src/promise_callback_demo.cc (100%) rename {promise-callback-demo => threadsafe-function/promise-callback-demo}/node-addon-api/test/index.js (100%) rename {thread_safe_function_counting => threadsafe-function/thread_safe_function_counting}/node-addon-api/addon.cc (100%) rename {thread_safe_function_counting => threadsafe-function/thread_safe_function_counting}/node-addon-api/addon.js (100%) rename {thread_safe_function_counting => threadsafe-function/thread_safe_function_counting}/node-addon-api/binding.gyp (100%) rename {thread_safe_function_counting => threadsafe-function/thread_safe_function_counting}/node-addon-api/package.json (100%) rename {thread_safe_function_round_trip => threadsafe-function/thread_safe_function_round_trip}/napi/binding.gyp (100%) rename {thread_safe_function_round_trip => threadsafe-function/thread_safe_function_round_trip}/napi/index.js (100%) rename {thread_safe_function_round_trip => threadsafe-function/thread_safe_function_round_trip}/napi/package.json (100%) rename {thread_safe_function_round_trip => threadsafe-function/thread_safe_function_round_trip}/napi/round_trip.c (100%) rename {thread_safe_function_with_object_wrap => threadsafe-function/thread_safe_function_with_object_wrap}/node-addon-api/binding.gyp (100%) rename {thread_safe_function_with_object_wrap => threadsafe-function/thread_safe_function_with_object_wrap}/node-addon-api/package.json (100%) rename {thread_safe_function_with_object_wrap => threadsafe-function/thread_safe_function_with_object_wrap}/node-addon-api/tsfn_object_wrap.cc (100%) rename {thread_safe_function_with_object_wrap => threadsafe-function/thread_safe_function_with_object_wrap}/node-addon-api/tsfn_object_wrap.js (100%) rename {threadsafe-async-iterator => threadsafe-function/threadsafe-async-iterator}/node-addon-api/CMakeLists.txt (100%) rename {threadsafe-async-iterator => threadsafe-function/threadsafe-async-iterator}/node-addon-api/example.cc (100%) rename {threadsafe-async-iterator => threadsafe-function/threadsafe-async-iterator}/node-addon-api/index.js (100%) rename {threadsafe-async-iterator => threadsafe-function/threadsafe-async-iterator}/node-addon-api/package.json (100%) rename {typed_threadsafe_function => threadsafe-function/typed_threadsafe_function}/node-addon-api/CMakeLists.txt (100%) rename {typed_threadsafe_function => threadsafe-function/typed_threadsafe_function}/node-addon-api/clock.cc (100%) rename {typed_threadsafe_function => threadsafe-function/typed_threadsafe_function}/node-addon-api/index.js (100%) rename {typed_threadsafe_function => threadsafe-function/typed_threadsafe_function}/node-addon-api/package.json (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/CMakeLists.txt (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/README.md (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/cPart.c (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/cPart.h (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/cppPart.cpp (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/index.ts (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/jsPart.js (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/napiPart.cpp (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/package.json (100%) rename {typescript_with_addon => tooling/typescript_with_addon}/node-addon-api/tsconfig.json (100%) diff --git a/async-iterator/node-addon-api/CMakeLists.txt b/async-work/async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from async-iterator/node-addon-api/CMakeLists.txt rename to async-work/async-iterator/node-addon-api/CMakeLists.txt diff --git a/async-iterator/node-addon-api/example.cc b/async-work/async-iterator/node-addon-api/example.cc similarity index 100% rename from async-iterator/node-addon-api/example.cc rename to async-work/async-iterator/node-addon-api/example.cc diff --git a/async-iterator/node-addon-api/index.js b/async-work/async-iterator/node-addon-api/index.js similarity index 100% rename from async-iterator/node-addon-api/index.js rename to async-work/async-iterator/node-addon-api/index.js diff --git a/async-iterator/node-addon-api/package.json b/async-work/async-iterator/node-addon-api/package.json similarity index 100% rename from async-iterator/node-addon-api/package.json rename to async-work/async-iterator/node-addon-api/package.json diff --git a/async_pi_estimate/nan/README.md b/async-work/async_pi_estimate/nan/README.md similarity index 100% rename from async_pi_estimate/nan/README.md rename to async-work/async_pi_estimate/nan/README.md diff --git a/async_pi_estimate/nan/addon.cc b/async-work/async_pi_estimate/nan/addon.cc similarity index 100% rename from async_pi_estimate/nan/addon.cc rename to async-work/async_pi_estimate/nan/addon.cc diff --git a/async_pi_estimate/nan/addon.js b/async-work/async_pi_estimate/nan/addon.js similarity index 100% rename from async_pi_estimate/nan/addon.js rename to async-work/async_pi_estimate/nan/addon.js diff --git a/async_pi_estimate/nan/async.cc b/async-work/async_pi_estimate/nan/async.cc similarity index 100% rename from async_pi_estimate/nan/async.cc rename to async-work/async_pi_estimate/nan/async.cc diff --git a/async_pi_estimate/nan/async.h b/async-work/async_pi_estimate/nan/async.h similarity index 100% rename from async_pi_estimate/nan/async.h rename to async-work/async_pi_estimate/nan/async.h diff --git a/async_pi_estimate/nan/binding.gyp b/async-work/async_pi_estimate/nan/binding.gyp similarity index 100% rename from async_pi_estimate/nan/binding.gyp rename to async-work/async_pi_estimate/nan/binding.gyp diff --git a/async_pi_estimate/nan/package.json b/async-work/async_pi_estimate/nan/package.json similarity index 100% rename from async_pi_estimate/nan/package.json rename to async-work/async_pi_estimate/nan/package.json diff --git a/async_pi_estimate/nan/pi_est.cc b/async-work/async_pi_estimate/nan/pi_est.cc similarity index 100% rename from async_pi_estimate/nan/pi_est.cc rename to async-work/async_pi_estimate/nan/pi_est.cc diff --git a/async_pi_estimate/nan/pi_est.h b/async-work/async_pi_estimate/nan/pi_est.h similarity index 100% rename from async_pi_estimate/nan/pi_est.h rename to async-work/async_pi_estimate/nan/pi_est.h diff --git a/async_pi_estimate/nan/sync.cc b/async-work/async_pi_estimate/nan/sync.cc similarity index 100% rename from async_pi_estimate/nan/sync.cc rename to async-work/async_pi_estimate/nan/sync.cc diff --git a/async_pi_estimate/nan/sync.h b/async-work/async_pi_estimate/nan/sync.h similarity index 100% rename from async_pi_estimate/nan/sync.h rename to async-work/async_pi_estimate/nan/sync.h diff --git a/async_pi_estimate/node-addon-api/README.md b/async-work/async_pi_estimate/node-addon-api/README.md similarity index 100% rename from async_pi_estimate/node-addon-api/README.md rename to async-work/async_pi_estimate/node-addon-api/README.md diff --git a/async_pi_estimate/node-addon-api/addon.cc b/async-work/async_pi_estimate/node-addon-api/addon.cc similarity index 100% rename from async_pi_estimate/node-addon-api/addon.cc rename to async-work/async_pi_estimate/node-addon-api/addon.cc diff --git a/async_pi_estimate/node-addon-api/addon.js b/async-work/async_pi_estimate/node-addon-api/addon.js similarity index 100% rename from async_pi_estimate/node-addon-api/addon.js rename to async-work/async_pi_estimate/node-addon-api/addon.js diff --git a/async_pi_estimate/node-addon-api/async.cc b/async-work/async_pi_estimate/node-addon-api/async.cc similarity index 100% rename from async_pi_estimate/node-addon-api/async.cc rename to async-work/async_pi_estimate/node-addon-api/async.cc diff --git a/async_pi_estimate/node-addon-api/async.h b/async-work/async_pi_estimate/node-addon-api/async.h similarity index 100% rename from async_pi_estimate/node-addon-api/async.h rename to async-work/async_pi_estimate/node-addon-api/async.h diff --git a/async_pi_estimate/node-addon-api/binding.gyp b/async-work/async_pi_estimate/node-addon-api/binding.gyp similarity index 100% rename from async_pi_estimate/node-addon-api/binding.gyp rename to async-work/async_pi_estimate/node-addon-api/binding.gyp diff --git a/async_pi_estimate/node-addon-api/package.json b/async-work/async_pi_estimate/node-addon-api/package.json similarity index 100% rename from async_pi_estimate/node-addon-api/package.json rename to async-work/async_pi_estimate/node-addon-api/package.json diff --git a/async_pi_estimate/node-addon-api/pi_est.cc b/async-work/async_pi_estimate/node-addon-api/pi_est.cc similarity index 100% rename from async_pi_estimate/node-addon-api/pi_est.cc rename to async-work/async_pi_estimate/node-addon-api/pi_est.cc diff --git a/async_pi_estimate/node-addon-api/pi_est.h b/async-work/async_pi_estimate/node-addon-api/pi_est.h similarity index 100% rename from async_pi_estimate/node-addon-api/pi_est.h rename to async-work/async_pi_estimate/node-addon-api/pi_est.h diff --git a/async_pi_estimate/node-addon-api/sync.cc b/async-work/async_pi_estimate/node-addon-api/sync.cc similarity index 100% rename from async_pi_estimate/node-addon-api/sync.cc rename to async-work/async_pi_estimate/node-addon-api/sync.cc diff --git a/async_pi_estimate/node-addon-api/sync.h b/async-work/async_pi_estimate/node-addon-api/sync.h similarity index 100% rename from async_pi_estimate/node-addon-api/sync.h rename to async-work/async_pi_estimate/node-addon-api/sync.h diff --git a/async_work_promise/napi/binding.c b/async-work/async_work_promise/napi/binding.c similarity index 100% rename from async_work_promise/napi/binding.c rename to async-work/async_work_promise/napi/binding.c diff --git a/async_work_promise/napi/binding.gyp b/async-work/async_work_promise/napi/binding.gyp similarity index 100% rename from async_work_promise/napi/binding.gyp rename to async-work/async_work_promise/napi/binding.gyp diff --git a/async_work_promise/napi/index.js b/async-work/async_work_promise/napi/index.js similarity index 100% rename from async_work_promise/napi/index.js rename to async-work/async_work_promise/napi/index.js diff --git a/async_work_promise/napi/package.json b/async-work/async_work_promise/napi/package.json similarity index 100% rename from async_work_promise/napi/package.json rename to async-work/async_work_promise/napi/package.json diff --git a/async_work_promise/node-addon-api/addon.cc b/async-work/async_work_promise/node-addon-api/addon.cc similarity index 100% rename from async_work_promise/node-addon-api/addon.cc rename to async-work/async_work_promise/node-addon-api/addon.cc diff --git a/async_work_promise/node-addon-api/binding.gyp b/async-work/async_work_promise/node-addon-api/binding.gyp similarity index 100% rename from async_work_promise/node-addon-api/binding.gyp rename to async-work/async_work_promise/node-addon-api/binding.gyp diff --git a/async_work_promise/node-addon-api/index.js b/async-work/async_work_promise/node-addon-api/index.js similarity index 100% rename from async_work_promise/node-addon-api/index.js rename to async-work/async_work_promise/node-addon-api/index.js diff --git a/async_work_promise/node-addon-api/package.json b/async-work/async_work_promise/node-addon-api/package.json similarity index 100% rename from async_work_promise/node-addon-api/package.json rename to async-work/async_work_promise/node-addon-api/package.json diff --git a/async_work_promise/node-addon-api/worker.h b/async-work/async_work_promise/node-addon-api/worker.h similarity index 100% rename from async_work_promise/node-addon-api/worker.h rename to async-work/async_work_promise/node-addon-api/worker.h diff --git a/async_work_thread_safe_function/napi/binding.c b/async-work/async_work_thread_safe_function/napi/binding.c similarity index 100% rename from async_work_thread_safe_function/napi/binding.c rename to async-work/async_work_thread_safe_function/napi/binding.c diff --git a/async_work_thread_safe_function/napi/binding.gyp b/async-work/async_work_thread_safe_function/napi/binding.gyp similarity index 100% rename from async_work_thread_safe_function/napi/binding.gyp rename to async-work/async_work_thread_safe_function/napi/binding.gyp diff --git a/async_work_thread_safe_function/napi/index.js b/async-work/async_work_thread_safe_function/napi/index.js similarity index 100% rename from async_work_thread_safe_function/napi/index.js rename to async-work/async_work_thread_safe_function/napi/index.js diff --git a/async_work_thread_safe_function/napi/package.json b/async-work/async_work_thread_safe_function/napi/package.json similarity index 100% rename from async_work_thread_safe_function/napi/package.json rename to async-work/async_work_thread_safe_function/napi/package.json diff --git a/call-js-from-async-worker-execute/node-addon-api/binding.gyp b/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp similarity index 100% rename from call-js-from-async-worker-execute/node-addon-api/binding.gyp rename to async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp diff --git a/call-js-from-async-worker-execute/node-addon-api/index.js b/async-work/call-js-from-async-worker-execute/node-addon-api/index.js similarity index 100% rename from call-js-from-async-worker-execute/node-addon-api/index.js rename to async-work/call-js-from-async-worker-execute/node-addon-api/index.js diff --git a/call-js-from-async-worker-execute/node-addon-api/package.json b/async-work/call-js-from-async-worker-execute/node-addon-api/package.json similarity index 100% rename from call-js-from-async-worker-execute/node-addon-api/package.json rename to async-work/call-js-from-async-worker-execute/node-addon-api/package.json diff --git a/call-js-from-async-worker-execute/node-addon-api/src/binding.cc b/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc similarity index 100% rename from call-js-from-async-worker-execute/node-addon-api/src/binding.cc rename to async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc diff --git a/napi-asyncworker-example/node-addon-api/README.md b/async-work/napi-asyncworker-example/node-addon-api/README.md similarity index 100% rename from napi-asyncworker-example/node-addon-api/README.md rename to async-work/napi-asyncworker-example/node-addon-api/README.md diff --git a/napi-asyncworker-example/node-addon-api/binding.gyp b/async-work/napi-asyncworker-example/node-addon-api/binding.gyp similarity index 100% rename from napi-asyncworker-example/node-addon-api/binding.gyp rename to async-work/napi-asyncworker-example/node-addon-api/binding.gyp diff --git a/napi-asyncworker-example/node-addon-api/package.json b/async-work/napi-asyncworker-example/node-addon-api/package.json similarity index 100% rename from napi-asyncworker-example/node-addon-api/package.json rename to async-work/napi-asyncworker-example/node-addon-api/package.json diff --git a/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc b/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc similarity index 100% rename from napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc rename to async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc diff --git a/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc b/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc similarity index 100% rename from napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc rename to async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc diff --git a/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h b/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h similarity index 100% rename from napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h rename to async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h diff --git a/napi-asyncworker-example/node-addon-api/test/Test.js b/async-work/napi-asyncworker-example/node-addon-api/test/Test.js similarity index 100% rename from napi-asyncworker-example/node-addon-api/test/Test.js rename to async-work/napi-asyncworker-example/node-addon-api/test/Test.js diff --git a/build_with_cmake/README.md b/build_with_cmake/README.md deleted file mode 100644 index f7d5c18e..00000000 --- a/build_with_cmake/README.md +++ /dev/null @@ -1,33 +0,0 @@ -## Building Node-API Addons Using CMake.js - -### Examples - -The objective of these examples is to demonstrate how to build Node-API addons using [CMake.js](https://github.com/cmake-js/cmake-js#readme). - -These example projects assume that CMake.js has been installed globally: - -``` -npm install -g cmake-js -cmake-js --help -``` - -Then, in each of the `napi` and `node-addon-api` directories, the following commands build and test each addon: - -``` -npm install -npm test -``` - -Complete CMake.js documentation can be found on the [CMake.js GitHub repository](https://github.com/cmake-js/cmake-js#readme). - -### NAPI_VERSION - -When building Node-API addons, it's important to specify to the build system the Node-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 Node-API is ABI-stable, your Node-API addon will work, without recompilation, with the Node-API version you specify in `NAPI_VERSION` and all subsequent Node-API versions. - -In the absence of a need for features available only in a specific Node-API version, version 3 is a good choice as it is the version of Node-API that was active when Node-API left experimental status. \ No newline at end of file diff --git a/build_with_cmake/napi/CMakeLists.txt b/build_with_cmake/napi/CMakeLists.txt deleted file mode 100644 index f87b9bb1..00000000 --- a/build_with_cmake/napi/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -cmake_policy(SET CMP0042 NEW) -set (CMAKE_CXX_STANDARD 11) - -project (build-napi-with-cmake) -include_directories(${CMAKE_JS_INC}) -file(GLOB SOURCE_FILES "hello.c") -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) -set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") -target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) - -# Define NAPI_VERSION -add_definitions(-DNAPI_VERSION=3) diff --git a/build_with_cmake/napi/hello.c b/build_with_cmake/napi/hello.c deleted file mode 100644 index 8ae1eee9..00000000 --- a/build_with_cmake/napi/hello.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -static napi_value Method(napi_env env, napi_callback_info info) { - napi_status status; - napi_value world; - status = napi_create_string_utf8(env, "Hello, world!", 13, &world); - assert(status == napi_ok); - return world; -} - -#define DECLARE_NAPI_METHOD(name, func) \ - { name, 0, func, 0, 0, 0, napi_default, 0 } - -static napi_value Init(napi_env env, napi_value exports) { - napi_status status; - napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method); - status = napi_define_properties(env, exports, 1, &desc); - assert(status == napi_ok); - return exports; -} - -NAPI_MODULE(hello, Init) diff --git a/build_with_cmake/napi/hello.js b/build_with_cmake/napi/hello.js deleted file mode 100644 index 5940bf9e..00000000 --- a/build_with_cmake/napi/hello.js +++ /dev/null @@ -1,3 +0,0 @@ -var addon = require('bindings')('build-napi-with-cmake'); - -console.log(addon.hello()); // 'world' diff --git a/build_with_cmake/napi/package.json b/build_with_cmake/napi/package.json deleted file mode 100644 index 10f23730..00000000 --- a/build_with_cmake/napi/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "build-napi-with-cmake", - "version": "0.0.0", - "description": "Build Node-API native addon with CMake.", - "main": "hello.js", - "private": true, - "dependencies": { - "bindings": "~1.2.1" - }, - "scripts": { - "install": "cmake-js compile", - "test": "node hello.js" - } -} diff --git a/build_with_cmake/node-addon-api/CMakeLists.txt b/build_with_cmake/node-addon-api/CMakeLists.txt deleted file mode 100644 index 456d2312..00000000 --- a/build_with_cmake/node-addon-api/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -cmake_policy(SET CMP0042 NEW) -set (CMAKE_CXX_STANDARD 11) - -project (build-node-addon-api-with-cmake) -include_directories(${CMAKE_JS_INC}) -file(GLOB SOURCE_FILES "hello.cc") -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) -set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") -target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) - -# Include Node-API wrappers -execute_process(COMMAND node -p "require('node-addon-api').include" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE NODE_ADDON_API_DIR - ) -string(REGEX REPLACE "[\r\n\"]" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) - -target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR}) - -# define NAPI_VERSION -add_definitions(-DNAPI_VERSION=3) diff --git a/build_with_cmake/node-addon-api/hello.cc b/build_with_cmake/node-addon-api/hello.cc deleted file mode 100644 index ae0f75d1..00000000 --- a/build_with_cmake/node-addon-api/hello.cc +++ /dev/null @@ -1,22 +0,0 @@ -#include - - -static Napi::String Method(const Napi::CallbackInfo& info) { - // Napi::Env is the opaque data structure containing the environment in which the request is being run. - // We will need this env when we want to create any new objects inside of the node.js environment - Napi::Env env = info.Env(); - - // Create a C++ level variable - std::string helloWorld = "Hello, world!"; - - // Return a new javascript string that we copy-construct inside of the node.js environment - return Napi::String::New(env, helloWorld); -} - -static Napi::Object Init(Napi::Env env, Napi::Object exports) { - exports.Set(Napi::String::New(env, "hello"), - Napi::Function::New(env, Method)); - return exports; -} - -NODE_API_MODULE(hello, Init) diff --git a/build_with_cmake/node-addon-api/hello.js b/build_with_cmake/node-addon-api/hello.js deleted file mode 100644 index 7edb5d3e..00000000 --- a/build_with_cmake/node-addon-api/hello.js +++ /dev/null @@ -1,3 +0,0 @@ -var addon = require('bindings')('build-node-addon-api-with-cmake'); - -console.log(addon.hello()); // 'world' diff --git a/build_with_cmake/node-addon-api/package.json b/build_with_cmake/node-addon-api/package.json deleted file mode 100644 index 6aedf0d0..00000000 --- a/build_with_cmake/node-addon-api/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "build-node-addon-api-with-cmake", - "version": "0.0.0", - "description": "Build Node-API native addon with CMake and node-addon-api C++ wrapper.", - "main": "hello.js", - "private": true, - "dependencies": { - "bindings": "~1.2.1", - "node-addon-api": "^1.0.0" - }, - "scripts": { - "install": "cmake-js compile", - "test": "node hello.js" - } -} diff --git a/multiple_load/napi/binding.gyp b/context-awareness/napi/binding.gyp similarity index 100% rename from multiple_load/napi/binding.gyp rename to context-awareness/napi/binding.gyp diff --git a/multiple_load/napi/index.js b/context-awareness/napi/index.js similarity index 100% rename from multiple_load/napi/index.js rename to context-awareness/napi/index.js diff --git a/multiple_load/napi/multiple_load.c b/context-awareness/napi/multiple_load.c similarity index 100% rename from multiple_load/napi/multiple_load.c rename to context-awareness/napi/multiple_load.c diff --git a/multiple_load/napi/package.json b/context-awareness/napi/package.json similarity index 100% rename from multiple_load/napi/package.json rename to context-awareness/napi/package.json diff --git a/multiple_load/node_10/binding.gyp b/context-awareness/node_10/binding.gyp similarity index 100% rename from multiple_load/node_10/binding.gyp rename to context-awareness/node_10/binding.gyp diff --git a/multiple_load/node_10/index.js b/context-awareness/node_10/index.js similarity index 100% rename from multiple_load/node_10/index.js rename to context-awareness/node_10/index.js diff --git a/multiple_load/node_10/multiple_load.cc b/context-awareness/node_10/multiple_load.cc similarity index 100% rename from multiple_load/node_10/multiple_load.cc rename to context-awareness/node_10/multiple_load.cc diff --git a/multiple_load/node_10/package.json b/context-awareness/node_10/package.json similarity index 100% rename from multiple_load/node_10/package.json rename to context-awareness/node_10/package.json diff --git a/emit_event_from_cpp/node-addon-api/binding.gyp b/events/emit_event_from_cpp/node-addon-api/binding.gyp similarity index 100% rename from emit_event_from_cpp/node-addon-api/binding.gyp rename to events/emit_event_from_cpp/node-addon-api/binding.gyp diff --git a/emit_event_from_cpp/node-addon-api/index.js b/events/emit_event_from_cpp/node-addon-api/index.js similarity index 100% rename from emit_event_from_cpp/node-addon-api/index.js rename to events/emit_event_from_cpp/node-addon-api/index.js diff --git a/emit_event_from_cpp/node-addon-api/package.json b/events/emit_event_from_cpp/node-addon-api/package.json similarity index 100% rename from emit_event_from_cpp/node-addon-api/package.json rename to events/emit_event_from_cpp/node-addon-api/package.json diff --git a/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc b/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc similarity index 100% rename from emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc rename to events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc diff --git a/inherits_from_event_emitter/node-addon-api/binding.gyp b/events/inherits_from_event_emitter/node-addon-api/binding.gyp similarity index 100% rename from inherits_from_event_emitter/node-addon-api/binding.gyp rename to events/inherits_from_event_emitter/node-addon-api/binding.gyp diff --git a/inherits_from_event_emitter/node-addon-api/index.js b/events/inherits_from_event_emitter/node-addon-api/index.js similarity index 100% rename from inherits_from_event_emitter/node-addon-api/index.js rename to events/inherits_from_event_emitter/node-addon-api/index.js diff --git a/inherits_from_event_emitter/node-addon-api/package.json b/events/inherits_from_event_emitter/node-addon-api/package.json similarity index 100% rename from inherits_from_event_emitter/node-addon-api/package.json rename to events/inherits_from_event_emitter/node-addon-api/package.json diff --git a/inherits_from_event_emitter/node-addon-api/src/binding.cc b/events/inherits_from_event_emitter/node-addon-api/src/binding.cc similarity index 100% rename from inherits_from_event_emitter/node-addon-api/src/binding.cc rename to events/inherits_from_event_emitter/node-addon-api/src/binding.cc diff --git a/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc b/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc similarity index 100% rename from inherits_from_event_emitter/node-addon-api/src/native-emitter.cc rename to events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc diff --git a/inherits_from_event_emitter/node-addon-api/src/native-emitter.h b/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h similarity index 100% rename from inherits_from_event_emitter/node-addon-api/src/native-emitter.h rename to events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h diff --git a/1_hello_world/README.md b/general/1_hello_world/README.md similarity index 100% rename from 1_hello_world/README.md rename to general/1_hello_world/README.md diff --git a/1_hello_world/nan/binding.gyp b/general/1_hello_world/nan/binding.gyp similarity index 100% rename from 1_hello_world/nan/binding.gyp rename to general/1_hello_world/nan/binding.gyp diff --git a/1_hello_world/nan/hello.cc b/general/1_hello_world/nan/hello.cc similarity index 100% rename from 1_hello_world/nan/hello.cc rename to general/1_hello_world/nan/hello.cc diff --git a/1_hello_world/nan/hello.js b/general/1_hello_world/nan/hello.js similarity index 100% rename from 1_hello_world/nan/hello.js rename to general/1_hello_world/nan/hello.js diff --git a/1_hello_world/nan/package.json b/general/1_hello_world/nan/package.json similarity index 100% rename from 1_hello_world/nan/package.json rename to general/1_hello_world/nan/package.json diff --git a/1_hello_world/napi/binding.gyp b/general/1_hello_world/napi/binding.gyp similarity index 100% rename from 1_hello_world/napi/binding.gyp rename to general/1_hello_world/napi/binding.gyp diff --git a/1_hello_world/napi/hello.c b/general/1_hello_world/napi/hello.c similarity index 100% rename from 1_hello_world/napi/hello.c rename to general/1_hello_world/napi/hello.c diff --git a/1_hello_world/napi/hello.js b/general/1_hello_world/napi/hello.js similarity index 100% rename from 1_hello_world/napi/hello.js rename to general/1_hello_world/napi/hello.js diff --git a/1_hello_world/napi/package.json b/general/1_hello_world/napi/package.json similarity index 100% rename from 1_hello_world/napi/package.json rename to general/1_hello_world/napi/package.json diff --git a/1_hello_world/node-addon-api-addon-class/binding.gyp b/general/1_hello_world/node-addon-api-addon-class/binding.gyp similarity index 100% rename from 1_hello_world/node-addon-api-addon-class/binding.gyp rename to general/1_hello_world/node-addon-api-addon-class/binding.gyp diff --git a/1_hello_world/node-addon-api-addon-class/hello.cc b/general/1_hello_world/node-addon-api-addon-class/hello.cc similarity index 100% rename from 1_hello_world/node-addon-api-addon-class/hello.cc rename to general/1_hello_world/node-addon-api-addon-class/hello.cc diff --git a/1_hello_world/node-addon-api-addon-class/hello.js b/general/1_hello_world/node-addon-api-addon-class/hello.js similarity index 100% rename from 1_hello_world/node-addon-api-addon-class/hello.js rename to general/1_hello_world/node-addon-api-addon-class/hello.js diff --git a/1_hello_world/node-addon-api-addon-class/package.json b/general/1_hello_world/node-addon-api-addon-class/package.json similarity index 100% rename from 1_hello_world/node-addon-api-addon-class/package.json rename to general/1_hello_world/node-addon-api-addon-class/package.json diff --git a/1_hello_world/node-addon-api/binding.gyp b/general/1_hello_world/node-addon-api/binding.gyp similarity index 100% rename from 1_hello_world/node-addon-api/binding.gyp rename to general/1_hello_world/node-addon-api/binding.gyp diff --git a/1_hello_world/node-addon-api/hello.cc b/general/1_hello_world/node-addon-api/hello.cc similarity index 100% rename from 1_hello_world/node-addon-api/hello.cc rename to general/1_hello_world/node-addon-api/hello.cc diff --git a/1_hello_world/node-addon-api/hello.js b/general/1_hello_world/node-addon-api/hello.js similarity index 100% rename from 1_hello_world/node-addon-api/hello.js rename to general/1_hello_world/node-addon-api/hello.js diff --git a/1_hello_world/node-addon-api/package.json b/general/1_hello_world/node-addon-api/package.json similarity index 100% rename from 1_hello_world/node-addon-api/package.json rename to general/1_hello_world/node-addon-api/package.json diff --git a/2_function_arguments/README.md b/general/2_function_arguments/README.md similarity index 100% rename from 2_function_arguments/README.md rename to general/2_function_arguments/README.md diff --git a/2_function_arguments/nan/addon.cc b/general/2_function_arguments/nan/addon.cc similarity index 100% rename from 2_function_arguments/nan/addon.cc rename to general/2_function_arguments/nan/addon.cc diff --git a/2_function_arguments/nan/addon.js b/general/2_function_arguments/nan/addon.js similarity index 100% rename from 2_function_arguments/nan/addon.js rename to general/2_function_arguments/nan/addon.js diff --git a/2_function_arguments/nan/binding.gyp b/general/2_function_arguments/nan/binding.gyp similarity index 100% rename from 2_function_arguments/nan/binding.gyp rename to general/2_function_arguments/nan/binding.gyp diff --git a/2_function_arguments/nan/package.json b/general/2_function_arguments/nan/package.json similarity index 100% rename from 2_function_arguments/nan/package.json rename to general/2_function_arguments/nan/package.json diff --git a/2_function_arguments/napi/addon.c b/general/2_function_arguments/napi/addon.c similarity index 100% rename from 2_function_arguments/napi/addon.c rename to general/2_function_arguments/napi/addon.c diff --git a/2_function_arguments/napi/addon.js b/general/2_function_arguments/napi/addon.js similarity index 100% rename from 2_function_arguments/napi/addon.js rename to general/2_function_arguments/napi/addon.js diff --git a/2_function_arguments/napi/binding.gyp b/general/2_function_arguments/napi/binding.gyp similarity index 100% rename from 2_function_arguments/napi/binding.gyp rename to general/2_function_arguments/napi/binding.gyp diff --git a/2_function_arguments/napi/package.json b/general/2_function_arguments/napi/package.json similarity index 100% rename from 2_function_arguments/napi/package.json rename to general/2_function_arguments/napi/package.json diff --git a/2_function_arguments/node-addon-api/addon.cc b/general/2_function_arguments/node-addon-api/addon.cc similarity index 100% rename from 2_function_arguments/node-addon-api/addon.cc rename to general/2_function_arguments/node-addon-api/addon.cc diff --git a/2_function_arguments/node-addon-api/addon.js b/general/2_function_arguments/node-addon-api/addon.js similarity index 100% rename from 2_function_arguments/node-addon-api/addon.js rename to general/2_function_arguments/node-addon-api/addon.js diff --git a/2_function_arguments/node-addon-api/binding.gyp b/general/2_function_arguments/node-addon-api/binding.gyp similarity index 100% rename from 2_function_arguments/node-addon-api/binding.gyp rename to general/2_function_arguments/node-addon-api/binding.gyp diff --git a/2_function_arguments/node-addon-api/package.json b/general/2_function_arguments/node-addon-api/package.json similarity index 100% rename from 2_function_arguments/node-addon-api/package.json rename to general/2_function_arguments/node-addon-api/package.json diff --git a/3_callbacks/nan/addon.cc b/general/3_callbacks/nan/addon.cc similarity index 100% rename from 3_callbacks/nan/addon.cc rename to general/3_callbacks/nan/addon.cc diff --git a/3_callbacks/nan/addon.js b/general/3_callbacks/nan/addon.js similarity index 100% rename from 3_callbacks/nan/addon.js rename to general/3_callbacks/nan/addon.js diff --git a/3_callbacks/nan/binding.gyp b/general/3_callbacks/nan/binding.gyp similarity index 100% rename from 3_callbacks/nan/binding.gyp rename to general/3_callbacks/nan/binding.gyp diff --git a/3_callbacks/nan/package.json b/general/3_callbacks/nan/package.json similarity index 100% rename from 3_callbacks/nan/package.json rename to general/3_callbacks/nan/package.json diff --git a/3_callbacks/napi/addon.c b/general/3_callbacks/napi/addon.c similarity index 100% rename from 3_callbacks/napi/addon.c rename to general/3_callbacks/napi/addon.c diff --git a/3_callbacks/napi/addon.js b/general/3_callbacks/napi/addon.js similarity index 100% rename from 3_callbacks/napi/addon.js rename to general/3_callbacks/napi/addon.js diff --git a/3_callbacks/napi/binding.gyp b/general/3_callbacks/napi/binding.gyp similarity index 100% rename from 3_callbacks/napi/binding.gyp rename to general/3_callbacks/napi/binding.gyp diff --git a/3_callbacks/napi/package.json b/general/3_callbacks/napi/package.json similarity index 100% rename from 3_callbacks/napi/package.json rename to general/3_callbacks/napi/package.json diff --git a/3_callbacks/node-addon-api/addon.cc b/general/3_callbacks/node-addon-api/addon.cc similarity index 100% rename from 3_callbacks/node-addon-api/addon.cc rename to general/3_callbacks/node-addon-api/addon.cc diff --git a/3_callbacks/node-addon-api/addon.js b/general/3_callbacks/node-addon-api/addon.js similarity index 100% rename from 3_callbacks/node-addon-api/addon.js rename to general/3_callbacks/node-addon-api/addon.js diff --git a/3_callbacks/node-addon-api/binding.gyp b/general/3_callbacks/node-addon-api/binding.gyp similarity index 100% rename from 3_callbacks/node-addon-api/binding.gyp rename to general/3_callbacks/node-addon-api/binding.gyp diff --git a/3_callbacks/node-addon-api/package.json b/general/3_callbacks/node-addon-api/package.json similarity index 100% rename from 3_callbacks/node-addon-api/package.json rename to general/3_callbacks/node-addon-api/package.json diff --git a/4_object_factory/nan/addon.cc b/general/4_object_factory/nan/addon.cc similarity index 100% rename from 4_object_factory/nan/addon.cc rename to general/4_object_factory/nan/addon.cc diff --git a/4_object_factory/nan/addon.js b/general/4_object_factory/nan/addon.js similarity index 100% rename from 4_object_factory/nan/addon.js rename to general/4_object_factory/nan/addon.js diff --git a/4_object_factory/nan/binding.gyp b/general/4_object_factory/nan/binding.gyp similarity index 100% rename from 4_object_factory/nan/binding.gyp rename to general/4_object_factory/nan/binding.gyp diff --git a/4_object_factory/nan/package.json b/general/4_object_factory/nan/package.json similarity index 100% rename from 4_object_factory/nan/package.json rename to general/4_object_factory/nan/package.json diff --git a/4_object_factory/napi/addon.c b/general/4_object_factory/napi/addon.c similarity index 100% rename from 4_object_factory/napi/addon.c rename to general/4_object_factory/napi/addon.c diff --git a/4_object_factory/napi/addon.js b/general/4_object_factory/napi/addon.js similarity index 100% rename from 4_object_factory/napi/addon.js rename to general/4_object_factory/napi/addon.js diff --git a/4_object_factory/napi/binding.gyp b/general/4_object_factory/napi/binding.gyp similarity index 100% rename from 4_object_factory/napi/binding.gyp rename to general/4_object_factory/napi/binding.gyp diff --git a/4_object_factory/napi/package.json b/general/4_object_factory/napi/package.json similarity index 100% rename from 4_object_factory/napi/package.json rename to general/4_object_factory/napi/package.json diff --git a/4_object_factory/node-addon-api/addon.cc b/general/4_object_factory/node-addon-api/addon.cc similarity index 100% rename from 4_object_factory/node-addon-api/addon.cc rename to general/4_object_factory/node-addon-api/addon.cc diff --git a/4_object_factory/node-addon-api/addon.js b/general/4_object_factory/node-addon-api/addon.js similarity index 100% rename from 4_object_factory/node-addon-api/addon.js rename to general/4_object_factory/node-addon-api/addon.js diff --git a/4_object_factory/node-addon-api/binding.gyp b/general/4_object_factory/node-addon-api/binding.gyp similarity index 100% rename from 4_object_factory/node-addon-api/binding.gyp rename to general/4_object_factory/node-addon-api/binding.gyp diff --git a/4_object_factory/node-addon-api/package.json b/general/4_object_factory/node-addon-api/package.json similarity index 100% rename from 4_object_factory/node-addon-api/package.json rename to general/4_object_factory/node-addon-api/package.json diff --git a/5_function_factory/nan/addon.cc b/general/5_function_factory/nan/addon.cc similarity index 100% rename from 5_function_factory/nan/addon.cc rename to general/5_function_factory/nan/addon.cc diff --git a/5_function_factory/nan/addon.js b/general/5_function_factory/nan/addon.js similarity index 100% rename from 5_function_factory/nan/addon.js rename to general/5_function_factory/nan/addon.js diff --git a/5_function_factory/nan/binding.gyp b/general/5_function_factory/nan/binding.gyp similarity index 100% rename from 5_function_factory/nan/binding.gyp rename to general/5_function_factory/nan/binding.gyp diff --git a/5_function_factory/nan/package.json b/general/5_function_factory/nan/package.json similarity index 100% rename from 5_function_factory/nan/package.json rename to general/5_function_factory/nan/package.json diff --git a/5_function_factory/napi/addon.c b/general/5_function_factory/napi/addon.c similarity index 100% rename from 5_function_factory/napi/addon.c rename to general/5_function_factory/napi/addon.c diff --git a/5_function_factory/napi/addon.js b/general/5_function_factory/napi/addon.js similarity index 100% rename from 5_function_factory/napi/addon.js rename to general/5_function_factory/napi/addon.js diff --git a/5_function_factory/napi/binding.gyp b/general/5_function_factory/napi/binding.gyp similarity index 100% rename from 5_function_factory/napi/binding.gyp rename to general/5_function_factory/napi/binding.gyp diff --git a/5_function_factory/napi/package.json b/general/5_function_factory/napi/package.json similarity index 100% rename from 5_function_factory/napi/package.json rename to general/5_function_factory/napi/package.json diff --git a/5_function_factory/node-addon-api/addon.cc b/general/5_function_factory/node-addon-api/addon.cc similarity index 100% rename from 5_function_factory/node-addon-api/addon.cc rename to general/5_function_factory/node-addon-api/addon.cc diff --git a/5_function_factory/node-addon-api/addon.js b/general/5_function_factory/node-addon-api/addon.js similarity index 100% rename from 5_function_factory/node-addon-api/addon.js rename to general/5_function_factory/node-addon-api/addon.js diff --git a/5_function_factory/node-addon-api/binding.gyp b/general/5_function_factory/node-addon-api/binding.gyp similarity index 100% rename from 5_function_factory/node-addon-api/binding.gyp rename to general/5_function_factory/node-addon-api/binding.gyp diff --git a/5_function_factory/node-addon-api/package.json b/general/5_function_factory/node-addon-api/package.json similarity index 100% rename from 5_function_factory/node-addon-api/package.json rename to general/5_function_factory/node-addon-api/package.json diff --git a/6_object_wrap/nan/addon.cc b/general/6_object_wrap/nan/addon.cc similarity index 100% rename from 6_object_wrap/nan/addon.cc rename to general/6_object_wrap/nan/addon.cc diff --git a/6_object_wrap/nan/addon.js b/general/6_object_wrap/nan/addon.js similarity index 100% rename from 6_object_wrap/nan/addon.js rename to general/6_object_wrap/nan/addon.js diff --git a/6_object_wrap/nan/binding.gyp b/general/6_object_wrap/nan/binding.gyp similarity index 100% rename from 6_object_wrap/nan/binding.gyp rename to general/6_object_wrap/nan/binding.gyp diff --git a/6_object_wrap/nan/myobject.cc b/general/6_object_wrap/nan/myobject.cc similarity index 100% rename from 6_object_wrap/nan/myobject.cc rename to general/6_object_wrap/nan/myobject.cc diff --git a/6_object_wrap/nan/myobject.h b/general/6_object_wrap/nan/myobject.h similarity index 100% rename from 6_object_wrap/nan/myobject.h rename to general/6_object_wrap/nan/myobject.h diff --git a/6_object_wrap/nan/package.json b/general/6_object_wrap/nan/package.json similarity index 100% rename from 6_object_wrap/nan/package.json rename to general/6_object_wrap/nan/package.json diff --git a/6_object_wrap/napi/addon.cc b/general/6_object_wrap/napi/addon.cc similarity index 100% rename from 6_object_wrap/napi/addon.cc rename to general/6_object_wrap/napi/addon.cc diff --git a/6_object_wrap/napi/addon.js b/general/6_object_wrap/napi/addon.js similarity index 100% rename from 6_object_wrap/napi/addon.js rename to general/6_object_wrap/napi/addon.js diff --git a/6_object_wrap/napi/binding.gyp b/general/6_object_wrap/napi/binding.gyp similarity index 100% rename from 6_object_wrap/napi/binding.gyp rename to general/6_object_wrap/napi/binding.gyp diff --git a/6_object_wrap/napi/myobject.cc b/general/6_object_wrap/napi/myobject.cc similarity index 100% rename from 6_object_wrap/napi/myobject.cc rename to general/6_object_wrap/napi/myobject.cc diff --git a/6_object_wrap/napi/myobject.h b/general/6_object_wrap/napi/myobject.h similarity index 100% rename from 6_object_wrap/napi/myobject.h rename to general/6_object_wrap/napi/myobject.h diff --git a/6_object_wrap/napi/package.json b/general/6_object_wrap/napi/package.json similarity index 100% rename from 6_object_wrap/napi/package.json rename to general/6_object_wrap/napi/package.json diff --git a/6_object_wrap/node-addon-api/addon.cc b/general/6_object_wrap/node-addon-api/addon.cc similarity index 100% rename from 6_object_wrap/node-addon-api/addon.cc rename to general/6_object_wrap/node-addon-api/addon.cc diff --git a/6_object_wrap/node-addon-api/addon.js b/general/6_object_wrap/node-addon-api/addon.js similarity index 100% rename from 6_object_wrap/node-addon-api/addon.js rename to general/6_object_wrap/node-addon-api/addon.js diff --git a/6_object_wrap/node-addon-api/binding.gyp b/general/6_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from 6_object_wrap/node-addon-api/binding.gyp rename to general/6_object_wrap/node-addon-api/binding.gyp diff --git a/6_object_wrap/node-addon-api/myobject.cc b/general/6_object_wrap/node-addon-api/myobject.cc similarity index 100% rename from 6_object_wrap/node-addon-api/myobject.cc rename to general/6_object_wrap/node-addon-api/myobject.cc diff --git a/6_object_wrap/node-addon-api/myobject.h b/general/6_object_wrap/node-addon-api/myobject.h similarity index 100% rename from 6_object_wrap/node-addon-api/myobject.h rename to general/6_object_wrap/node-addon-api/myobject.h diff --git a/6_object_wrap/node-addon-api/package.json b/general/6_object_wrap/node-addon-api/package.json similarity index 100% rename from 6_object_wrap/node-addon-api/package.json rename to general/6_object_wrap/node-addon-api/package.json diff --git a/7_factory_wrap/nan/addon.cc b/general/7_factory_wrap/nan/addon.cc similarity index 100% rename from 7_factory_wrap/nan/addon.cc rename to general/7_factory_wrap/nan/addon.cc diff --git a/7_factory_wrap/nan/addon.js b/general/7_factory_wrap/nan/addon.js similarity index 100% rename from 7_factory_wrap/nan/addon.js rename to general/7_factory_wrap/nan/addon.js diff --git a/7_factory_wrap/nan/binding.gyp b/general/7_factory_wrap/nan/binding.gyp similarity index 100% rename from 7_factory_wrap/nan/binding.gyp rename to general/7_factory_wrap/nan/binding.gyp diff --git a/7_factory_wrap/nan/myobject.cc b/general/7_factory_wrap/nan/myobject.cc similarity index 100% rename from 7_factory_wrap/nan/myobject.cc rename to general/7_factory_wrap/nan/myobject.cc diff --git a/7_factory_wrap/nan/myobject.h b/general/7_factory_wrap/nan/myobject.h similarity index 100% rename from 7_factory_wrap/nan/myobject.h rename to general/7_factory_wrap/nan/myobject.h diff --git a/7_factory_wrap/nan/package.json b/general/7_factory_wrap/nan/package.json similarity index 100% rename from 7_factory_wrap/nan/package.json rename to general/7_factory_wrap/nan/package.json diff --git a/7_factory_wrap/napi/addon.cc b/general/7_factory_wrap/napi/addon.cc similarity index 100% rename from 7_factory_wrap/napi/addon.cc rename to general/7_factory_wrap/napi/addon.cc diff --git a/7_factory_wrap/napi/addon.js b/general/7_factory_wrap/napi/addon.js similarity index 100% rename from 7_factory_wrap/napi/addon.js rename to general/7_factory_wrap/napi/addon.js diff --git a/7_factory_wrap/napi/binding.gyp b/general/7_factory_wrap/napi/binding.gyp similarity index 100% rename from 7_factory_wrap/napi/binding.gyp rename to general/7_factory_wrap/napi/binding.gyp diff --git a/7_factory_wrap/napi/myobject.cc b/general/7_factory_wrap/napi/myobject.cc similarity index 100% rename from 7_factory_wrap/napi/myobject.cc rename to general/7_factory_wrap/napi/myobject.cc diff --git a/7_factory_wrap/napi/myobject.h b/general/7_factory_wrap/napi/myobject.h similarity index 100% rename from 7_factory_wrap/napi/myobject.h rename to general/7_factory_wrap/napi/myobject.h diff --git a/7_factory_wrap/napi/package.json b/general/7_factory_wrap/napi/package.json similarity index 100% rename from 7_factory_wrap/napi/package.json rename to general/7_factory_wrap/napi/package.json diff --git a/7_factory_wrap/node-addon-api/addon.cc b/general/7_factory_wrap/node-addon-api/addon.cc similarity index 100% rename from 7_factory_wrap/node-addon-api/addon.cc rename to general/7_factory_wrap/node-addon-api/addon.cc diff --git a/7_factory_wrap/node-addon-api/addon.js b/general/7_factory_wrap/node-addon-api/addon.js similarity index 100% rename from 7_factory_wrap/node-addon-api/addon.js rename to general/7_factory_wrap/node-addon-api/addon.js diff --git a/7_factory_wrap/node-addon-api/binding.gyp b/general/7_factory_wrap/node-addon-api/binding.gyp similarity index 100% rename from 7_factory_wrap/node-addon-api/binding.gyp rename to general/7_factory_wrap/node-addon-api/binding.gyp diff --git a/7_factory_wrap/node-addon-api/myobject.cc b/general/7_factory_wrap/node-addon-api/myobject.cc similarity index 100% rename from 7_factory_wrap/node-addon-api/myobject.cc rename to general/7_factory_wrap/node-addon-api/myobject.cc diff --git a/7_factory_wrap/node-addon-api/myobject.h b/general/7_factory_wrap/node-addon-api/myobject.h similarity index 100% rename from 7_factory_wrap/node-addon-api/myobject.h rename to general/7_factory_wrap/node-addon-api/myobject.h diff --git a/7_factory_wrap/node-addon-api/package.json b/general/7_factory_wrap/node-addon-api/package.json similarity index 100% rename from 7_factory_wrap/node-addon-api/package.json rename to general/7_factory_wrap/node-addon-api/package.json diff --git a/a-first-project/node-addon-api/README.md b/general/a-first-project/node-addon-api/README.md similarity index 100% rename from a-first-project/node-addon-api/README.md rename to general/a-first-project/node-addon-api/README.md diff --git a/a-first-project/node-addon-api/binding.gyp b/general/a-first-project/node-addon-api/binding.gyp similarity index 100% rename from a-first-project/node-addon-api/binding.gyp rename to general/a-first-project/node-addon-api/binding.gyp diff --git a/a-first-project/node-addon-api/lib/binding.js b/general/a-first-project/node-addon-api/lib/binding.js similarity index 100% rename from a-first-project/node-addon-api/lib/binding.js rename to general/a-first-project/node-addon-api/lib/binding.js diff --git a/a-first-project/node-addon-api/package.json b/general/a-first-project/node-addon-api/package.json similarity index 100% rename from a-first-project/node-addon-api/package.json rename to general/a-first-project/node-addon-api/package.json diff --git a/a-first-project/node-addon-api/src/hello_world.cc b/general/a-first-project/node-addon-api/src/hello_world.cc similarity index 100% rename from a-first-project/node-addon-api/src/hello_world.cc rename to general/a-first-project/node-addon-api/src/hello_world.cc diff --git a/a-first-project/node-addon-api/test/test_binding.js b/general/a-first-project/node-addon-api/test/test_binding.js similarity index 100% rename from a-first-project/node-addon-api/test/test_binding.js rename to general/a-first-project/node-addon-api/test/test_binding.js diff --git a/8_passing_wrapped/nan/addon.cc b/js-to-native-conversion/8_passing_wrapped/nan/addon.cc similarity index 100% rename from 8_passing_wrapped/nan/addon.cc rename to js-to-native-conversion/8_passing_wrapped/nan/addon.cc diff --git a/8_passing_wrapped/nan/addon.js b/js-to-native-conversion/8_passing_wrapped/nan/addon.js similarity index 100% rename from 8_passing_wrapped/nan/addon.js rename to js-to-native-conversion/8_passing_wrapped/nan/addon.js diff --git a/8_passing_wrapped/nan/binding.gyp b/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp similarity index 100% rename from 8_passing_wrapped/nan/binding.gyp rename to js-to-native-conversion/8_passing_wrapped/nan/binding.gyp diff --git a/8_passing_wrapped/nan/myobject.cc b/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc similarity index 100% rename from 8_passing_wrapped/nan/myobject.cc rename to js-to-native-conversion/8_passing_wrapped/nan/myobject.cc diff --git a/8_passing_wrapped/nan/myobject.h b/js-to-native-conversion/8_passing_wrapped/nan/myobject.h similarity index 100% rename from 8_passing_wrapped/nan/myobject.h rename to js-to-native-conversion/8_passing_wrapped/nan/myobject.h diff --git a/8_passing_wrapped/nan/package.json b/js-to-native-conversion/8_passing_wrapped/nan/package.json similarity index 100% rename from 8_passing_wrapped/nan/package.json rename to js-to-native-conversion/8_passing_wrapped/nan/package.json diff --git a/8_passing_wrapped/napi/addon.cc b/js-to-native-conversion/8_passing_wrapped/napi/addon.cc similarity index 100% rename from 8_passing_wrapped/napi/addon.cc rename to js-to-native-conversion/8_passing_wrapped/napi/addon.cc diff --git a/8_passing_wrapped/napi/addon.js b/js-to-native-conversion/8_passing_wrapped/napi/addon.js similarity index 100% rename from 8_passing_wrapped/napi/addon.js rename to js-to-native-conversion/8_passing_wrapped/napi/addon.js diff --git a/8_passing_wrapped/napi/binding.gyp b/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp similarity index 100% rename from 8_passing_wrapped/napi/binding.gyp rename to js-to-native-conversion/8_passing_wrapped/napi/binding.gyp diff --git a/8_passing_wrapped/napi/myobject.cc b/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc similarity index 100% rename from 8_passing_wrapped/napi/myobject.cc rename to js-to-native-conversion/8_passing_wrapped/napi/myobject.cc diff --git a/8_passing_wrapped/napi/myobject.h b/js-to-native-conversion/8_passing_wrapped/napi/myobject.h similarity index 100% rename from 8_passing_wrapped/napi/myobject.h rename to js-to-native-conversion/8_passing_wrapped/napi/myobject.h diff --git a/8_passing_wrapped/napi/package.json b/js-to-native-conversion/8_passing_wrapped/napi/package.json similarity index 100% rename from 8_passing_wrapped/napi/package.json rename to js-to-native-conversion/8_passing_wrapped/napi/package.json diff --git a/8_passing_wrapped/node-addon-api/addon.cc b/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc similarity index 100% rename from 8_passing_wrapped/node-addon-api/addon.cc rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc diff --git a/8_passing_wrapped/node-addon-api/addon.js b/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js similarity index 100% rename from 8_passing_wrapped/node-addon-api/addon.js rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js diff --git a/8_passing_wrapped/node-addon-api/binding.gyp b/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp similarity index 100% rename from 8_passing_wrapped/node-addon-api/binding.gyp rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp diff --git a/8_passing_wrapped/node-addon-api/myobject.cc b/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc similarity index 100% rename from 8_passing_wrapped/node-addon-api/myobject.cc rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc diff --git a/8_passing_wrapped/node-addon-api/myobject.h b/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h similarity index 100% rename from 8_passing_wrapped/node-addon-api/myobject.h rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h diff --git a/8_passing_wrapped/node-addon-api/package.json b/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json similarity index 100% rename from 8_passing_wrapped/node-addon-api/package.json rename to js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json diff --git a/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc b/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc similarity index 100% rename from array_buffer_to_native/node-addon-api/array_buffer_to_native.cc rename to js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc diff --git a/array_buffer_to_native/node-addon-api/binding.gyp b/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp similarity index 100% rename from array_buffer_to_native/node-addon-api/binding.gyp rename to js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp diff --git a/array_buffer_to_native/node-addon-api/index.js b/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js similarity index 100% rename from array_buffer_to_native/node-addon-api/index.js rename to js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js diff --git a/array_buffer_to_native/node-addon-api/package.json b/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json similarity index 100% rename from array_buffer_to_native/node-addon-api/package.json rename to js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json diff --git a/object-template-demo/README.md b/js-to-native-conversion/object-template-demo/README.md similarity index 100% rename from object-template-demo/README.md rename to js-to-native-conversion/object-template-demo/README.md diff --git a/object-template-demo/nan/binding.gyp b/js-to-native-conversion/object-template-demo/nan/binding.gyp similarity index 100% rename from object-template-demo/nan/binding.gyp rename to js-to-native-conversion/object-template-demo/nan/binding.gyp diff --git a/object-template-demo/nan/index.js b/js-to-native-conversion/object-template-demo/nan/index.js similarity index 100% rename from object-template-demo/nan/index.js rename to js-to-native-conversion/object-template-demo/nan/index.js diff --git a/object-template-demo/nan/object-template-demo.cc b/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc similarity index 100% rename from object-template-demo/nan/object-template-demo.cc rename to js-to-native-conversion/object-template-demo/nan/object-template-demo.cc diff --git a/object-template-demo/nan/package.json b/js-to-native-conversion/object-template-demo/nan/package.json similarity index 100% rename from object-template-demo/nan/package.json rename to js-to-native-conversion/object-template-demo/nan/package.json diff --git a/object-template-demo/napi/binding.gyp b/js-to-native-conversion/object-template-demo/napi/binding.gyp similarity index 100% rename from object-template-demo/napi/binding.gyp rename to js-to-native-conversion/object-template-demo/napi/binding.gyp diff --git a/object-template-demo/napi/index.js b/js-to-native-conversion/object-template-demo/napi/index.js similarity index 100% rename from object-template-demo/napi/index.js rename to js-to-native-conversion/object-template-demo/napi/index.js diff --git a/object-template-demo/napi/node-api-common.h b/js-to-native-conversion/object-template-demo/napi/node-api-common.h similarity index 100% rename from object-template-demo/napi/node-api-common.h rename to js-to-native-conversion/object-template-demo/napi/node-api-common.h diff --git a/object-template-demo/napi/object-template-demo.cc b/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc similarity index 100% rename from object-template-demo/napi/object-template-demo.cc rename to js-to-native-conversion/object-template-demo/napi/object-template-demo.cc diff --git a/object-template-demo/napi/package.json b/js-to-native-conversion/object-template-demo/napi/package.json similarity index 100% rename from object-template-demo/napi/package.json rename to js-to-native-conversion/object-template-demo/napi/package.json diff --git a/object-template-demo/napi/proxy-template.cc b/js-to-native-conversion/object-template-demo/napi/proxy-template.cc similarity index 100% rename from object-template-demo/napi/proxy-template.cc rename to js-to-native-conversion/object-template-demo/napi/proxy-template.cc diff --git a/object-template-demo/napi/proxy-template.h b/js-to-native-conversion/object-template-demo/napi/proxy-template.h similarity index 100% rename from object-template-demo/napi/proxy-template.h rename to js-to-native-conversion/object-template-demo/napi/proxy-template.h diff --git a/object-wrap-demo/node-addon-api/README.md b/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md similarity index 100% rename from object-wrap-demo/node-addon-api/README.md rename to js-to-native-conversion/object-wrap-demo/node-addon-api/README.md diff --git a/object-wrap-demo/node-addon-api/binding.gyp b/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp similarity index 100% rename from object-wrap-demo/node-addon-api/binding.gyp rename to js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp diff --git a/object-wrap-demo/node-addon-api/lib/binding.js b/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js similarity index 100% rename from object-wrap-demo/node-addon-api/lib/binding.js rename to js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js diff --git a/object-wrap-demo/node-addon-api/package.json b/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json similarity index 100% rename from object-wrap-demo/node-addon-api/package.json rename to js-to-native-conversion/object-wrap-demo/node-addon-api/package.json diff --git a/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc b/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc similarity index 100% rename from object-wrap-demo/node-addon-api/src/object_wrap_demo.cc rename to js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc diff --git a/object-wrap-demo/node-addon-api/src/object_wrap_demo.h b/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h similarity index 100% rename from object-wrap-demo/node-addon-api/src/object_wrap_demo.h rename to js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h diff --git a/object-wrap-demo/node-addon-api/test/test_binding.js b/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js similarity index 100% rename from object-wrap-demo/node-addon-api/test/test_binding.js rename to js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js diff --git a/typed_array_to_native/node-addon-api/binding.gyp b/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp similarity index 100% rename from typed_array_to_native/node-addon-api/binding.gyp rename to js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp diff --git a/typed_array_to_native/node-addon-api/index.js b/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js similarity index 100% rename from typed_array_to_native/node-addon-api/index.js rename to js-to-native-conversion/typed_array_to_native/node-addon-api/index.js diff --git a/typed_array_to_native/node-addon-api/package.json b/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json similarity index 100% rename from typed_array_to_native/node-addon-api/package.json rename to js-to-native-conversion/typed_array_to_native/node-addon-api/package.json diff --git a/typed_array_to_native/node-addon-api/typed_array_to_native.cc b/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc similarity index 100% rename from typed_array_to_native/node-addon-api/typed_array_to_native.cc rename to js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc diff --git a/function-reference-demo/node-addon-api/binding.gyp b/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp similarity index 100% rename from function-reference-demo/node-addon-api/binding.gyp rename to references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp diff --git a/function-reference-demo/node-addon-api/index.js b/references-and-handle-scope/function-reference-demo/node-addon-api/index.js similarity index 100% rename from function-reference-demo/node-addon-api/index.js rename to references-and-handle-scope/function-reference-demo/node-addon-api/index.js diff --git a/function-reference-demo/node-addon-api/package.json b/references-and-handle-scope/function-reference-demo/node-addon-api/package.json similarity index 100% rename from function-reference-demo/node-addon-api/package.json rename to references-and-handle-scope/function-reference-demo/node-addon-api/package.json diff --git a/function-reference-demo/node-addon-api/src/binding.cc b/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc similarity index 100% rename from function-reference-demo/node-addon-api/src/binding.cc rename to references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc diff --git a/function-reference-demo/node-addon-api/src/native-addon.cc b/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc similarity index 100% rename from function-reference-demo/node-addon-api/src/native-addon.cc rename to references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc diff --git a/function-reference-demo/node-addon-api/src/native-addon.h b/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h similarity index 100% rename from function-reference-demo/node-addon-api/src/native-addon.h rename to references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h diff --git a/promise-callback-demo/node-addon-api/README.md b/threadsafe-function/promise-callback-demo/node-addon-api/README.md similarity index 100% rename from promise-callback-demo/node-addon-api/README.md rename to threadsafe-function/promise-callback-demo/node-addon-api/README.md diff --git a/promise-callback-demo/node-addon-api/binding.gyp b/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp similarity index 100% rename from promise-callback-demo/node-addon-api/binding.gyp rename to threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp diff --git a/promise-callback-demo/node-addon-api/package.json b/threadsafe-function/promise-callback-demo/node-addon-api/package.json similarity index 100% rename from promise-callback-demo/node-addon-api/package.json rename to threadsafe-function/promise-callback-demo/node-addon-api/package.json diff --git a/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc b/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc similarity index 100% rename from promise-callback-demo/node-addon-api/src/promise_callback_demo.cc rename to threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc diff --git a/promise-callback-demo/node-addon-api/test/index.js b/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js similarity index 100% rename from promise-callback-demo/node-addon-api/test/index.js rename to threadsafe-function/promise-callback-demo/node-addon-api/test/index.js diff --git a/thread_safe_function_counting/node-addon-api/addon.cc b/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc similarity index 100% rename from thread_safe_function_counting/node-addon-api/addon.cc rename to threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc diff --git a/thread_safe_function_counting/node-addon-api/addon.js b/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js similarity index 100% rename from thread_safe_function_counting/node-addon-api/addon.js rename to threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js diff --git a/thread_safe_function_counting/node-addon-api/binding.gyp b/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp similarity index 100% rename from thread_safe_function_counting/node-addon-api/binding.gyp rename to threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp diff --git a/thread_safe_function_counting/node-addon-api/package.json b/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json similarity index 100% rename from thread_safe_function_counting/node-addon-api/package.json rename to threadsafe-function/thread_safe_function_counting/node-addon-api/package.json diff --git a/thread_safe_function_round_trip/napi/binding.gyp b/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp similarity index 100% rename from thread_safe_function_round_trip/napi/binding.gyp rename to threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp diff --git a/thread_safe_function_round_trip/napi/index.js b/threadsafe-function/thread_safe_function_round_trip/napi/index.js similarity index 100% rename from thread_safe_function_round_trip/napi/index.js rename to threadsafe-function/thread_safe_function_round_trip/napi/index.js diff --git a/thread_safe_function_round_trip/napi/package.json b/threadsafe-function/thread_safe_function_round_trip/napi/package.json similarity index 100% rename from thread_safe_function_round_trip/napi/package.json rename to threadsafe-function/thread_safe_function_round_trip/napi/package.json diff --git a/thread_safe_function_round_trip/napi/round_trip.c b/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c similarity index 100% rename from thread_safe_function_round_trip/napi/round_trip.c rename to threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c diff --git a/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from thread_safe_function_with_object_wrap/node-addon-api/binding.gyp rename to threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp diff --git a/thread_safe_function_with_object_wrap/node-addon-api/package.json b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json similarity index 100% rename from thread_safe_function_with_object_wrap/node-addon-api/package.json rename to threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json diff --git a/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc similarity index 100% rename from thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc rename to threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc diff --git a/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js similarity index 100% rename from thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js rename to threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js diff --git a/threadsafe-async-iterator/node-addon-api/CMakeLists.txt b/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from threadsafe-async-iterator/node-addon-api/CMakeLists.txt rename to threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt diff --git a/threadsafe-async-iterator/node-addon-api/example.cc b/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc similarity index 100% rename from threadsafe-async-iterator/node-addon-api/example.cc rename to threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc diff --git a/threadsafe-async-iterator/node-addon-api/index.js b/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js similarity index 100% rename from threadsafe-async-iterator/node-addon-api/index.js rename to threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js diff --git a/threadsafe-async-iterator/node-addon-api/package.json b/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json similarity index 100% rename from threadsafe-async-iterator/node-addon-api/package.json rename to threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json diff --git a/typed_threadsafe_function/node-addon-api/CMakeLists.txt b/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt similarity index 100% rename from typed_threadsafe_function/node-addon-api/CMakeLists.txt rename to threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt diff --git a/typed_threadsafe_function/node-addon-api/clock.cc b/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc similarity index 100% rename from typed_threadsafe_function/node-addon-api/clock.cc rename to threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc diff --git a/typed_threadsafe_function/node-addon-api/index.js b/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js similarity index 100% rename from typed_threadsafe_function/node-addon-api/index.js rename to threadsafe-function/typed_threadsafe_function/node-addon-api/index.js diff --git a/typed_threadsafe_function/node-addon-api/package.json b/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json similarity index 100% rename from typed_threadsafe_function/node-addon-api/package.json rename to threadsafe-function/typed_threadsafe_function/node-addon-api/package.json diff --git a/typescript_with_addon/node-addon-api/CMakeLists.txt b/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt similarity index 100% rename from typescript_with_addon/node-addon-api/CMakeLists.txt rename to tooling/typescript_with_addon/node-addon-api/CMakeLists.txt diff --git a/typescript_with_addon/node-addon-api/README.md b/tooling/typescript_with_addon/node-addon-api/README.md similarity index 100% rename from typescript_with_addon/node-addon-api/README.md rename to tooling/typescript_with_addon/node-addon-api/README.md diff --git a/typescript_with_addon/node-addon-api/cPart.c b/tooling/typescript_with_addon/node-addon-api/cPart.c similarity index 100% rename from typescript_with_addon/node-addon-api/cPart.c rename to tooling/typescript_with_addon/node-addon-api/cPart.c diff --git a/typescript_with_addon/node-addon-api/cPart.h b/tooling/typescript_with_addon/node-addon-api/cPart.h similarity index 100% rename from typescript_with_addon/node-addon-api/cPart.h rename to tooling/typescript_with_addon/node-addon-api/cPart.h diff --git a/typescript_with_addon/node-addon-api/cppPart.cpp b/tooling/typescript_with_addon/node-addon-api/cppPart.cpp similarity index 100% rename from typescript_with_addon/node-addon-api/cppPart.cpp rename to tooling/typescript_with_addon/node-addon-api/cppPart.cpp diff --git a/typescript_with_addon/node-addon-api/index.ts b/tooling/typescript_with_addon/node-addon-api/index.ts similarity index 100% rename from typescript_with_addon/node-addon-api/index.ts rename to tooling/typescript_with_addon/node-addon-api/index.ts diff --git a/typescript_with_addon/node-addon-api/jsPart.js b/tooling/typescript_with_addon/node-addon-api/jsPart.js similarity index 100% rename from typescript_with_addon/node-addon-api/jsPart.js rename to tooling/typescript_with_addon/node-addon-api/jsPart.js diff --git a/typescript_with_addon/node-addon-api/napiPart.cpp b/tooling/typescript_with_addon/node-addon-api/napiPart.cpp similarity index 100% rename from typescript_with_addon/node-addon-api/napiPart.cpp rename to tooling/typescript_with_addon/node-addon-api/napiPart.cpp diff --git a/typescript_with_addon/node-addon-api/package.json b/tooling/typescript_with_addon/node-addon-api/package.json similarity index 100% rename from typescript_with_addon/node-addon-api/package.json rename to tooling/typescript_with_addon/node-addon-api/package.json diff --git a/typescript_with_addon/node-addon-api/tsconfig.json b/tooling/typescript_with_addon/node-addon-api/tsconfig.json similarity index 100% rename from typescript_with_addon/node-addon-api/tsconfig.json rename to tooling/typescript_with_addon/node-addon-api/tsconfig.json From 93c3ac84b9d2317240b3c7479dfd333eb7df9780 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 14:49:45 +0200 Subject: [PATCH 02/17] test: update test_all to work with new directory structure --- test_all.js | 86 ++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/test_all.js b/test_all.js index a74db3fd..170b851e 100644 --- a/test_all.js +++ b/test_all.js @@ -1,49 +1,49 @@ -const fs = require('fs') -const path = require('path') -const { execSync } = require('child_process') -const chalk = require('chalk') -const semver = require('semver') +const fs = require("fs"); +const path = require("path"); +const { execSync } = require("child_process"); +const chalk = require("chalk"); +const semver = require("semver"); -const excludeFolder = ['node_modules', 'website'] +const excludeFolder = ["node_modules", "website"]; -function getAllTests() { - return fs - .readdirSync('./') - .filter(i => { - return ( - !i.startsWith('.') && - fs.statSync(i).isDirectory() && - !excludeFolder.includes(i) - ) - }) - .map(i => { - const p = path.join(__dirname, i) - const tests = fs - .readdirSync(p) - .filter(j => fs.statSync(path.join(p, j)).isDirectory()) - .map(j => path.join(p, j)) - return tests - }) +function getAllTests(pathToCheck) { + const directoriesToTest = []; + for (const fd of fs.readdirSync(pathToCheck)) { + if (excludeFolder.includes(fd)) { + continue; + } + const absPath = path.join(pathToCheck, fd); + if (fs.statSync(absPath).isDirectory()) { + directoriesToTest.push(...getAllTests(absPath)); + } + + if (fs.existsSync(path.join(absPath, "package.json"))) { + directoriesToTest.push(absPath); + } + } + return directoriesToTest; } -getAllTests().map(tests => { - tests.map(i => { - console.log(chalk.green(`testing: ${i}`)) - const p = require(path.join(i, 'package.json')) - if (p.engines && p.engines.node) { - const currentNodeVersion = process.versions.node - const range = p.engines.node - const engineOk = semver.satisfies(currentNodeVersion, range) - if (!engineOk) { - console.warn( - chalk.yellow(`${i} require Node.js ${range}, current is ${currentNodeVersion}, skipping`) +for (directoryToTest of getAllTests(__dirname)) { + console.log(chalk.green(`testing: ${directoryToTest}`)); + const pkgJson = require(path.join(directoryToTest, "package.json")); + if (pkgJson.engines && pkgJson.engines.node) { + const currentNodeVersion = process.versions.node; + const range = pkgJson.engines.node; + const engineOk = semver.satisfies(currentNodeVersion, range); + if (!engineOk) { + console.warn( + chalk.yellow( + `${directoryToTest} require Node.js ${range}, current is ${currentNodeVersion}, skipping` ) - return - } + ); + continue; } - const stdout = execSync('npm install', { - cwd: i - }) - console.log(stdout.toString()) - }) -}) + } + let stdout = execSync("npm install", { cwd: directoryToTest }); + console.log(stdout.toString()); + if ("test" in pkgJson.scripts) { + stdout = execSync("npm test", { cwd: directoryToTest }); + console.log(stdout.toString()); + } +} From 42c6119a5680dd48fb90e3a5a1ebc3b1e46adbf2 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 14:50:53 +0200 Subject: [PATCH 03/17] fix: bug in test_all if no package.json scripts --- test_all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_all.js b/test_all.js index 170b851e..91803fb4 100644 --- a/test_all.js +++ b/test_all.js @@ -42,7 +42,7 @@ for (directoryToTest of getAllTests(__dirname)) { } let stdout = execSync("npm install", { cwd: directoryToTest }); console.log(stdout.toString()); - if ("test" in pkgJson.scripts) { + if ("scripts" in pkgJson && "test" in pkgJson.scripts) { stdout = execSync("npm test", { cwd: directoryToTest }); console.log(stdout.toString()); } From d93a4a80729a6c99dc1eca197070dd209a855204 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 15:53:29 +0200 Subject: [PATCH 04/17] test: cleanup output of test_all --- test_all.js | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/test_all.js b/test_all.js index 91803fb4..9307dbf3 100644 --- a/test_all.js +++ b/test_all.js @@ -24,7 +24,11 @@ function getAllTests(pathToCheck) { return directoriesToTest; } -for (directoryToTest of getAllTests(__dirname)) { +const passed = []; +const noTest = []; +const failedInstalls = []; +const failedTests = []; +for (directoryToTest of getAllTests(path.join(__dirname, "threadsafe-function"))) { console.log(chalk.green(`testing: ${directoryToTest}`)); const pkgJson = require(path.join(directoryToTest, "package.json")); if (pkgJson.engines && pkgJson.engines.node) { @@ -40,10 +44,40 @@ for (directoryToTest of getAllTests(__dirname)) { continue; } } - let stdout = execSync("npm install", { cwd: directoryToTest }); - console.log(stdout.toString()); - if ("scripts" in pkgJson && "test" in pkgJson.scripts) { - stdout = execSync("npm test", { cwd: directoryToTest }); + try { + const stdout = execSync("npm install", { cwd: directoryToTest }); console.log(stdout.toString()); + } catch (err) { + console.log(err) + failedInstalls.push(directoryToTest); + continue; } + if ("scripts" in pkgJson && "test" in pkgJson.scripts) { + try { + const stdout = execSync("npm test", { cwd: directoryToTest }); + console.log(stdout.toString()); + passed.push(directoryToTest); + } catch (err) { + console.log(err) + failedTests.push(directoryToTest); + } + } else { + noTest.push(directoryToTest); + } +} + +passed.map((dir) => console.log(chalk.green(`passed: ${dir}`))); + +if (noTest.length > 0) { + console.warn(chalk.yellow("no test found:")); + noTest.map((dir) => console.warn(chalk.yellow(` ${dir}`))); +} + +if (failedInstalls.length > 0) { + console.error(chalk.red("failed to install:")); + failedInstalls.map((dir) => console.warn(chalk.red(` ${dir}`))); +} +if (failedTests.length > 0) { + console.error(chalk.red("failed tests:")); + failedTests.map((dir) => console.warn(chalk.red(` ${dir}`))); } From 2da956d9e287c4ffae4318cf307e0c82786260e3 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 15:54:28 +0200 Subject: [PATCH 05/17] fix: remove default test script that throws from thread_safe_function_with_object_wrap --- .../node-addon-api/package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json index 070d1bf6..201cfdf9 100644 --- a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json +++ b/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json @@ -3,9 +3,6 @@ "version": "1.0.0", "description": "", "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, "author": "", "dependencies": { "bindings": "*", From 142407ed8e387d19e20a0cb6758f9d36fd6a7525 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 16:04:50 +0200 Subject: [PATCH 06/17] fix: remove build_with_cmake from .gitignore --- tooling/build_with_cmake/README.md | 33 +++++++++++++++++++ tooling/build_with_cmake/napi/CMakeLists.txt | 13 ++++++++ tooling/build_with_cmake/napi/hello.c | 23 +++++++++++++ tooling/build_with_cmake/napi/hello.js | 3 ++ tooling/build_with_cmake/napi/package.json | 14 ++++++++ .../node-addon-api/CMakeLists.txt | 22 +++++++++++++ .../build_with_cmake/node-addon-api/hello.cc | 23 +++++++++++++ .../build_with_cmake/node-addon-api/hello.js | 3 ++ .../node-addon-api/package.json | 15 +++++++++ 9 files changed, 149 insertions(+) create mode 100644 tooling/build_with_cmake/README.md create mode 100644 tooling/build_with_cmake/napi/CMakeLists.txt create mode 100644 tooling/build_with_cmake/napi/hello.c create mode 100644 tooling/build_with_cmake/napi/hello.js create mode 100644 tooling/build_with_cmake/napi/package.json create mode 100644 tooling/build_with_cmake/node-addon-api/CMakeLists.txt create mode 100644 tooling/build_with_cmake/node-addon-api/hello.cc create mode 100644 tooling/build_with_cmake/node-addon-api/hello.js create mode 100644 tooling/build_with_cmake/node-addon-api/package.json diff --git a/tooling/build_with_cmake/README.md b/tooling/build_with_cmake/README.md new file mode 100644 index 00000000..f7d5c18e --- /dev/null +++ b/tooling/build_with_cmake/README.md @@ -0,0 +1,33 @@ +## Building Node-API Addons Using CMake.js + +### Examples + +The objective of these examples is to demonstrate how to build Node-API addons using [CMake.js](https://github.com/cmake-js/cmake-js#readme). + +These example projects assume that CMake.js has been installed globally: + +``` +npm install -g cmake-js +cmake-js --help +``` + +Then, in each of the `napi` and `node-addon-api` directories, the following commands build and test each addon: + +``` +npm install +npm test +``` + +Complete CMake.js documentation can be found on the [CMake.js GitHub repository](https://github.com/cmake-js/cmake-js#readme). + +### NAPI_VERSION + +When building Node-API addons, it's important to specify to the build system the Node-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 Node-API is ABI-stable, your Node-API addon will work, without recompilation, with the Node-API version you specify in `NAPI_VERSION` and all subsequent Node-API versions. + +In the absence of a need for features available only in a specific Node-API version, version 3 is a good choice as it is the version of Node-API that was active when Node-API left experimental status. \ No newline at end of file diff --git a/tooling/build_with_cmake/napi/CMakeLists.txt b/tooling/build_with_cmake/napi/CMakeLists.txt new file mode 100644 index 00000000..f87b9bb1 --- /dev/null +++ b/tooling/build_with_cmake/napi/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.9) +cmake_policy(SET CMP0042 NEW) +set (CMAKE_CXX_STANDARD 11) + +project (build-napi-with-cmake) +include_directories(${CMAKE_JS_INC}) +file(GLOB SOURCE_FILES "hello.c") +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) +set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") +target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) + +# Define NAPI_VERSION +add_definitions(-DNAPI_VERSION=3) diff --git a/tooling/build_with_cmake/napi/hello.c b/tooling/build_with_cmake/napi/hello.c new file mode 100644 index 00000000..8ae1eee9 --- /dev/null +++ b/tooling/build_with_cmake/napi/hello.c @@ -0,0 +1,23 @@ +#include +#include + +static napi_value Method(napi_env env, napi_callback_info info) { + napi_status status; + napi_value world; + status = napi_create_string_utf8(env, "Hello, world!", 13, &world); + assert(status == napi_ok); + return world; +} + +#define DECLARE_NAPI_METHOD(name, func) \ + { name, 0, func, 0, 0, 0, napi_default, 0 } + +static napi_value Init(napi_env env, napi_value exports) { + napi_status status; + napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method); + status = napi_define_properties(env, exports, 1, &desc); + assert(status == napi_ok); + return exports; +} + +NAPI_MODULE(hello, Init) diff --git a/tooling/build_with_cmake/napi/hello.js b/tooling/build_with_cmake/napi/hello.js new file mode 100644 index 00000000..5940bf9e --- /dev/null +++ b/tooling/build_with_cmake/napi/hello.js @@ -0,0 +1,3 @@ +var addon = require('bindings')('build-napi-with-cmake'); + +console.log(addon.hello()); // 'world' diff --git a/tooling/build_with_cmake/napi/package.json b/tooling/build_with_cmake/napi/package.json new file mode 100644 index 00000000..10f23730 --- /dev/null +++ b/tooling/build_with_cmake/napi/package.json @@ -0,0 +1,14 @@ +{ + "name": "build-napi-with-cmake", + "version": "0.0.0", + "description": "Build Node-API native addon with CMake.", + "main": "hello.js", + "private": true, + "dependencies": { + "bindings": "~1.2.1" + }, + "scripts": { + "install": "cmake-js compile", + "test": "node hello.js" + } +} diff --git a/tooling/build_with_cmake/node-addon-api/CMakeLists.txt b/tooling/build_with_cmake/node-addon-api/CMakeLists.txt new file mode 100644 index 00000000..456d2312 --- /dev/null +++ b/tooling/build_with_cmake/node-addon-api/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.9) +cmake_policy(SET CMP0042 NEW) +set (CMAKE_CXX_STANDARD 11) + +project (build-node-addon-api-with-cmake) +include_directories(${CMAKE_JS_INC}) +file(GLOB SOURCE_FILES "hello.cc") +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) +set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") +target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) + +# Include Node-API wrappers +execute_process(COMMAND node -p "require('node-addon-api').include" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE NODE_ADDON_API_DIR + ) +string(REGEX REPLACE "[\r\n\"]" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) + +target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR}) + +# define NAPI_VERSION +add_definitions(-DNAPI_VERSION=3) diff --git a/tooling/build_with_cmake/node-addon-api/hello.cc b/tooling/build_with_cmake/node-addon-api/hello.cc new file mode 100644 index 00000000..1c422da3 --- /dev/null +++ b/tooling/build_with_cmake/node-addon-api/hello.cc @@ -0,0 +1,23 @@ +#include + +static Napi::String Method(const Napi::CallbackInfo& info) { + // Napi::Env is the opaque data structure containing the environment in which + // the request is being run. We will need this env when we want to create any + // new objects inside of the node.js environment + Napi::Env env = info.Env(); + + // Create a C++ level variable + std::string helloWorld = "Hello, world!"; + + // Return a new javascript string that we copy-construct inside of the node.js + // environment + return Napi::String::New(env, helloWorld); +} + +static Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports.Set(Napi::String::New(env, "hello"), + Napi::Function::New(env, Method)); + return exports; +} + +NODE_API_MODULE(hello, Init) diff --git a/tooling/build_with_cmake/node-addon-api/hello.js b/tooling/build_with_cmake/node-addon-api/hello.js new file mode 100644 index 00000000..7edb5d3e --- /dev/null +++ b/tooling/build_with_cmake/node-addon-api/hello.js @@ -0,0 +1,3 @@ +var addon = require('bindings')('build-node-addon-api-with-cmake'); + +console.log(addon.hello()); // 'world' diff --git a/tooling/build_with_cmake/node-addon-api/package.json b/tooling/build_with_cmake/node-addon-api/package.json new file mode 100644 index 00000000..6aedf0d0 --- /dev/null +++ b/tooling/build_with_cmake/node-addon-api/package.json @@ -0,0 +1,15 @@ +{ + "name": "build-node-addon-api-with-cmake", + "version": "0.0.0", + "description": "Build Node-API native addon with CMake and node-addon-api C++ wrapper.", + "main": "hello.js", + "private": true, + "dependencies": { + "bindings": "~1.2.1", + "node-addon-api": "^1.0.0" + }, + "scripts": { + "install": "cmake-js compile", + "test": "node hello.js" + } +} From 1328d171e5192500901e6327a8b214ce32a20550 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 16:27:32 +0200 Subject: [PATCH 07/17] fix: swith to ' from " and remove subdir from getAllTests call --- test_all.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/test_all.js b/test_all.js index 9307dbf3..40fe952f 100644 --- a/test_all.js +++ b/test_all.js @@ -1,10 +1,10 @@ -const fs = require("fs"); -const path = require("path"); -const { execSync } = require("child_process"); -const chalk = require("chalk"); -const semver = require("semver"); +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); +const chalk = require('chalk'); +const semver = require('semver'); -const excludeFolder = ["node_modules", "website"]; +const excludeFolder = ['node_modules', 'website']; function getAllTests(pathToCheck) { const directoriesToTest = []; @@ -17,7 +17,7 @@ function getAllTests(pathToCheck) { directoriesToTest.push(...getAllTests(absPath)); } - if (fs.existsSync(path.join(absPath, "package.json"))) { + if (fs.existsSync(path.join(absPath, 'package.json'))) { directoriesToTest.push(absPath); } } @@ -25,12 +25,12 @@ function getAllTests(pathToCheck) { } const passed = []; -const noTest = []; const failedInstalls = []; +const noTest = []; const failedTests = []; -for (directoryToTest of getAllTests(path.join(__dirname, "threadsafe-function"))) { +for (directoryToTest of getAllTests(path.join(__dirname))) { console.log(chalk.green(`testing: ${directoryToTest}`)); - const pkgJson = require(path.join(directoryToTest, "package.json")); + const pkgJson = require(path.join(directoryToTest, 'package.json')); if (pkgJson.engines && pkgJson.engines.node) { const currentNodeVersion = process.versions.node; const range = pkgJson.engines.node; @@ -45,16 +45,16 @@ for (directoryToTest of getAllTests(path.join(__dirname, "threadsafe-function")) } } try { - const stdout = execSync("npm install", { cwd: directoryToTest }); + const stdout = execSync('npm install', { cwd: directoryToTest }); console.log(stdout.toString()); } catch (err) { console.log(err) failedInstalls.push(directoryToTest); continue; } - if ("scripts" in pkgJson && "test" in pkgJson.scripts) { + if ('scripts' in pkgJson && 'test' in pkgJson.scripts) { try { - const stdout = execSync("npm test", { cwd: directoryToTest }); + const stdout = execSync('npm test', { cwd: directoryToTest }); console.log(stdout.toString()); passed.push(directoryToTest); } catch (err) { @@ -69,15 +69,15 @@ for (directoryToTest of getAllTests(path.join(__dirname, "threadsafe-function")) passed.map((dir) => console.log(chalk.green(`passed: ${dir}`))); if (noTest.length > 0) { - console.warn(chalk.yellow("no test found:")); + console.warn(chalk.yellow('no test found:')); noTest.map((dir) => console.warn(chalk.yellow(` ${dir}`))); } if (failedInstalls.length > 0) { - console.error(chalk.red("failed to install:")); + console.error(chalk.red('failed to install:')); failedInstalls.map((dir) => console.warn(chalk.red(` ${dir}`))); } if (failedTests.length > 0) { - console.error(chalk.red("failed tests:")); + console.error(chalk.red('failed tests:')); failedTests.map((dir) => console.warn(chalk.red(` ${dir}`))); } From 23fc82c501c9c6c4649af440100d34eb1cb427ec Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 16:47:06 +0200 Subject: [PATCH 08/17] test: add extra test cases for npm start and just running the pkgJson.main with node --- test_all.js | 60 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/test_all.js b/test_all.js index 40fe952f..8145534c 100644 --- a/test_all.js +++ b/test_all.js @@ -1,12 +1,12 @@ -const fs = require('fs'); -const path = require('path'); -const { execSync } = require('child_process'); -const chalk = require('chalk'); -const semver = require('semver'); +const fs = require("fs"); +const path = require("path"); +const { execSync } = require("child_process"); +const chalk = require("chalk"); +const semver = require("semver"); -const excludeFolder = ['node_modules', 'website']; +const excludeFolder = ["node_modules", "website"]; -function getAllTests(pathToCheck) { +function getAllExamples(pathToCheck) { const directoriesToTest = []; for (const fd of fs.readdirSync(pathToCheck)) { if (excludeFolder.includes(fd)) { @@ -14,10 +14,10 @@ function getAllTests(pathToCheck) { } const absPath = path.join(pathToCheck, fd); if (fs.statSync(absPath).isDirectory()) { - directoriesToTest.push(...getAllTests(absPath)); + directoriesToTest.push(...getAllExamples(absPath)); } - if (fs.existsSync(path.join(absPath, 'package.json'))) { + if (fs.existsSync(path.join(absPath, "package.json"))) { directoriesToTest.push(absPath); } } @@ -28,9 +28,9 @@ const passed = []; const failedInstalls = []; const noTest = []; const failedTests = []; -for (directoryToTest of getAllTests(path.join(__dirname))) { +for (directoryToTest of getAllExamples(path.join(__dirname))) { console.log(chalk.green(`testing: ${directoryToTest}`)); - const pkgJson = require(path.join(directoryToTest, 'package.json')); + const pkgJson = require(path.join(directoryToTest, "package.json")); if (pkgJson.engines && pkgJson.engines.node) { const currentNodeVersion = process.versions.node; const range = pkgJson.engines.node; @@ -44,40 +44,50 @@ for (directoryToTest of getAllTests(path.join(__dirname))) { continue; } } + try { - const stdout = execSync('npm install', { cwd: directoryToTest }); + const stdout = execSync("npm install", { cwd: directoryToTest }); console.log(stdout.toString()); } catch (err) { - console.log(err) + console.log(err); failedInstalls.push(directoryToTest); continue; } - if ('scripts' in pkgJson && 'test' in pkgJson.scripts) { - try { - const stdout = execSync('npm test', { cwd: directoryToTest }); - console.log(stdout.toString()); - passed.push(directoryToTest); - } catch (err) { - console.log(err) - failedTests.push(directoryToTest); - } + + let testCommand; + if ("scripts" in pkgJson && "start" in pkgJson.scripts) { + testCommand = "npm start"; + } else if ("scripts" in pkgJson && "test" in pkgJson.scripts) { + testCommand = "npm test"; + } else if ("main" in pkgJson) { + testCommand = `node ${pkgJson.main}` } else { noTest.push(directoryToTest); + continue; + } + + try { + const stdout = execSync(testCommand, { cwd: directoryToTest }); + console.log(stdout.toString()); + passed.push(directoryToTest); + } catch (err) { + console.log(err); + failedTests.push(directoryToTest); } } passed.map((dir) => console.log(chalk.green(`passed: ${dir}`))); if (noTest.length > 0) { - console.warn(chalk.yellow('no test found:')); + console.warn(chalk.yellow("no test found:")); noTest.map((dir) => console.warn(chalk.yellow(` ${dir}`))); } if (failedInstalls.length > 0) { - console.error(chalk.red('failed to install:')); + console.error(chalk.red("failed to install:")); failedInstalls.map((dir) => console.warn(chalk.red(` ${dir}`))); } if (failedTests.length > 0) { - console.error(chalk.red('failed tests:')); + console.error(chalk.red("failed tests:")); failedTests.map((dir) => console.warn(chalk.red(` ${dir}`))); } From d2b2da5197fad2803b1ee9530bdb7fb7bba8d9bd Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:03:10 +0200 Subject: [PATCH 09/17] refactor: move all examples to src directory --- .../node-addon-api/CMakeLists.txt | 0 .../async-iterator/node-addon-api/example.cc | 0 .../async-iterator/node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../async_pi_estimate/nan/README.md | 0 .../async_pi_estimate/nan/addon.cc | 0 .../async_pi_estimate/nan/addon.js | 0 .../async_pi_estimate/nan/async.cc | 0 .../async-work}/async_pi_estimate/nan/async.h | 0 .../async_pi_estimate/nan/binding.gyp | 0 .../async_pi_estimate/nan/package.json | 0 .../async_pi_estimate/nan/pi_est.cc | 0 .../async_pi_estimate/nan/pi_est.h | 0 .../async-work}/async_pi_estimate/nan/sync.cc | 0 .../async-work}/async_pi_estimate/nan/sync.h | 0 .../node-addon-api/README.md | 0 .../async_pi_estimate/node-addon-api/addon.cc | 0 .../async_pi_estimate/node-addon-api/addon.js | 0 .../async_pi_estimate/node-addon-api/async.cc | 0 .../async_pi_estimate/node-addon-api/async.h | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/pi_est.cc | 0 .../async_pi_estimate/node-addon-api/pi_est.h | 0 .../async_pi_estimate/node-addon-api/sync.cc | 0 .../async_pi_estimate/node-addon-api/sync.h | 0 .../async_work_promise/napi/binding.c | 0 .../async_work_promise/napi/binding.gyp | 0 .../async_work_promise/napi/index.js | 0 .../async_work_promise/napi/package.json | 0 .../node-addon-api/addon.cc | 4 +- .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/worker.h | 0 .../napi/binding.c | 0 .../napi/binding.gyp | 0 .../napi/index.js | 0 .../napi/package.json | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../src/RunSimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.h | 0 .../node-addon-api/test/Test.js | 0 .../context-awareness}/napi/binding.gyp | 0 .../context-awareness}/napi/index.js | 0 .../context-awareness}/napi/multiple_load.c | 0 .../context-awareness}/napi/package.json | 0 .../context-awareness}/node_10/binding.gyp | 0 .../context-awareness}/node_10/index.js | 0 .../node_10/multiple_load.cc | 0 .../context-awareness}/node_10/package.json | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/emit-from-cpp.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/src/native-emitter.cc | 0 .../node-addon-api/src/native-emitter.h | 0 .../general}/1_hello_world/README.md | 0 .../general}/1_hello_world/nan/binding.gyp | 0 .../general}/1_hello_world/nan/hello.cc | 0 .../general}/1_hello_world/nan/hello.js | 0 .../general}/1_hello_world/nan/package.json | 0 .../general}/1_hello_world/napi/binding.gyp | 0 .../general}/1_hello_world/napi/hello.c | 0 .../general}/1_hello_world/napi/hello.js | 0 .../general}/1_hello_world/napi/package.json | 0 .../node-addon-api-addon-class/binding.gyp | 0 .../node-addon-api-addon-class/hello.cc | 5 +-- .../node-addon-api-addon-class/hello.js | 0 .../node-addon-api-addon-class/package.json | 0 .../1_hello_world/node-addon-api/binding.gyp | 0 .../1_hello_world/node-addon-api/hello.cc | 0 .../1_hello_world/node-addon-api/hello.js | 0 .../1_hello_world/node-addon-api/package.json | 0 .../general}/2_function_arguments/README.md | 0 .../2_function_arguments/nan/addon.cc | 0 .../2_function_arguments/nan/addon.js | 0 .../2_function_arguments/nan/binding.gyp | 0 .../2_function_arguments/nan/package.json | 0 .../2_function_arguments/napi/addon.c | 0 .../2_function_arguments/napi/addon.js | 0 .../2_function_arguments/napi/binding.gyp | 0 .../2_function_arguments/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../general}/3_callbacks/nan/addon.cc | 0 .../general}/3_callbacks/nan/addon.js | 0 .../general}/3_callbacks/nan/binding.gyp | 0 .../general}/3_callbacks/nan/package.json | 0 .../general}/3_callbacks/napi/addon.c | 0 .../general}/3_callbacks/napi/addon.js | 0 .../general}/3_callbacks/napi/binding.gyp | 0 .../general}/3_callbacks/napi/package.json | 0 .../3_callbacks/node-addon-api/addon.cc | 0 .../3_callbacks/node-addon-api/addon.js | 0 .../3_callbacks/node-addon-api/binding.gyp | 0 .../3_callbacks/node-addon-api/package.json | 0 .../general}/4_object_factory/nan/addon.cc | 0 .../general}/4_object_factory/nan/addon.js | 0 .../general}/4_object_factory/nan/binding.gyp | 0 .../4_object_factory/nan/package.json | 0 .../general}/4_object_factory/napi/addon.c | 0 .../general}/4_object_factory/napi/addon.js | 0 .../4_object_factory/napi/binding.gyp | 0 .../4_object_factory/napi/package.json | 0 .../4_object_factory/node-addon-api/addon.cc | 0 .../4_object_factory/node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../general}/5_function_factory/nan/addon.cc | 0 .../general}/5_function_factory/nan/addon.js | 0 .../5_function_factory/nan/binding.gyp | 0 .../5_function_factory/nan/package.json | 0 .../general}/5_function_factory/napi/addon.c | 0 .../general}/5_function_factory/napi/addon.js | 0 .../5_function_factory/napi/binding.gyp | 0 .../5_function_factory/napi/package.json | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../general}/6_object_wrap/nan/addon.cc | 0 .../general}/6_object_wrap/nan/addon.js | 0 .../general}/6_object_wrap/nan/binding.gyp | 0 .../general}/6_object_wrap/nan/myobject.cc | 0 .../general}/6_object_wrap/nan/myobject.h | 0 .../general}/6_object_wrap/nan/package.json | 0 .../general}/6_object_wrap/napi/addon.cc | 0 .../general}/6_object_wrap/napi/addon.js | 0 .../general}/6_object_wrap/napi/binding.gyp | 0 .../general}/6_object_wrap/napi/myobject.cc | 0 .../general}/6_object_wrap/napi/myobject.h | 0 .../general}/6_object_wrap/napi/package.json | 0 .../6_object_wrap/node-addon-api/addon.cc | 0 .../6_object_wrap/node-addon-api/addon.js | 0 .../6_object_wrap/node-addon-api/binding.gyp | 0 .../6_object_wrap/node-addon-api/myobject.cc | 0 .../6_object_wrap/node-addon-api/myobject.h | 0 .../6_object_wrap/node-addon-api/package.json | 0 .../general}/7_factory_wrap/nan/addon.cc | 0 .../general}/7_factory_wrap/nan/addon.js | 0 .../general}/7_factory_wrap/nan/binding.gyp | 0 .../general}/7_factory_wrap/nan/myobject.cc | 0 .../general}/7_factory_wrap/nan/myobject.h | 0 .../general}/7_factory_wrap/nan/package.json | 0 .../general}/7_factory_wrap/napi/addon.cc | 0 .../general}/7_factory_wrap/napi/addon.js | 0 .../general}/7_factory_wrap/napi/binding.gyp | 0 .../general}/7_factory_wrap/napi/myobject.cc | 0 .../general}/7_factory_wrap/napi/myobject.h | 0 .../general}/7_factory_wrap/napi/package.json | 0 .../7_factory_wrap/node-addon-api/addon.cc | 0 .../7_factory_wrap/node-addon-api/addon.js | 0 .../7_factory_wrap/node-addon-api/binding.gyp | 0 .../7_factory_wrap/node-addon-api/myobject.cc | 0 .../7_factory_wrap/node-addon-api/myobject.h | 0 .../node-addon-api/package.json | 0 .../a-first-project/node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/lib/binding.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/hello_world.cc | 0 .../node-addon-api/test/test_binding.js | 0 .../8_passing_wrapped/nan/addon.cc | 0 .../8_passing_wrapped/nan/addon.js | 0 .../8_passing_wrapped/nan/binding.gyp | 0 .../8_passing_wrapped/nan/myobject.cc | 0 .../8_passing_wrapped/nan/myobject.h | 0 .../8_passing_wrapped/nan/package.json | 0 .../8_passing_wrapped/napi/addon.cc | 0 .../8_passing_wrapped/napi/addon.js | 0 .../8_passing_wrapped/napi/binding.gyp | 0 .../8_passing_wrapped/napi/myobject.cc | 0 .../8_passing_wrapped/napi/myobject.h | 0 .../8_passing_wrapped/napi/package.json | 0 .../8_passing_wrapped/node-addon-api/addon.cc | 0 .../8_passing_wrapped/node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/myobject.cc | 5 ++- .../node-addon-api/myobject.h | 0 .../node-addon-api/package.json | 0 .../node-addon-api/array_buffer_to_native.cc | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../object-template-demo/README.md | 0 .../object-template-demo/nan/binding.gyp | 0 .../object-template-demo/nan/index.js | 0 .../nan/object-template-demo.cc | 42 +++++++++---------- .../object-template-demo/nan/package.json | 0 .../object-template-demo/napi/binding.gyp | 0 .../object-template-demo/napi/index.js | 0 .../napi/node-api-common.h | 0 .../napi/object-template-demo.cc | 2 +- .../object-template-demo/napi/package.json | 0 .../napi/proxy-template.cc | 0 .../napi/proxy-template.h | 0 .../object-wrap-demo/node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/lib/binding.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/object_wrap_demo.cc | 0 .../node-addon-api/src/object_wrap_demo.h | 0 .../node-addon-api/test/test_binding.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/typed_array_to_native.cc | 5 ++- .../node-addon-api/binding.gyp | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../node-addon-api/src/native-addon.cc | 0 .../node-addon-api/src/native-addon.h | 0 .../node-addon-api/README.md | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../src/promise_callback_demo.cc | 0 .../node-addon-api/test/index.js | 0 .../node-addon-api/addon.cc | 0 .../node-addon-api/addon.js | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../napi/binding.gyp | 0 .../napi/index.js | 0 .../napi/package.json | 0 .../napi/round_trip.c | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/tsfn_object_wrap.cc | 0 .../node-addon-api/tsfn_object_wrap.js | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/example.cc | 0 .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/clock.cc | 33 ++++++++------- .../node-addon-api/index.js | 0 .../node-addon-api/package.json | 0 .../node-addon-api/CMakeLists.txt | 0 .../node-addon-api/README.md | 0 .../node-addon-api/cPart.c | 0 .../node-addon-api/cPart.h | 0 .../node-addon-api/cppPart.cpp | 0 .../node-addon-api/index.ts | 0 .../node-addon-api/jsPart.js | 0 .../node-addon-api/napiPart.cpp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/tsconfig.json | 0 test_all.js | 3 +- tooling/build_with_cmake/README.md | 33 --------------- tooling/build_with_cmake/napi/CMakeLists.txt | 13 ------ tooling/build_with_cmake/napi/hello.c | 23 ---------- tooling/build_with_cmake/napi/hello.js | 3 -- tooling/build_with_cmake/napi/package.json | 14 ------- .../node-addon-api/CMakeLists.txt | 22 ---------- .../build_with_cmake/node-addon-api/hello.cc | 23 ---------- .../build_with_cmake/node-addon-api/hello.js | 3 -- .../node-addon-api/package.json | 15 ------- 272 files changed, 50 insertions(+), 198 deletions(-) rename {async-work => src/async-work}/async-iterator/node-addon-api/CMakeLists.txt (100%) rename {async-work => src/async-work}/async-iterator/node-addon-api/example.cc (100%) rename {async-work => src/async-work}/async-iterator/node-addon-api/index.js (100%) rename {async-work => src/async-work}/async-iterator/node-addon-api/package.json (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/README.md (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/addon.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/addon.js (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/async.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/async.h (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/binding.gyp (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/package.json (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/pi_est.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/pi_est.h (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/sync.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/nan/sync.h (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/README.md (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/addon.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/addon.js (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/async.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/async.h (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/binding.gyp (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/package.json (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/pi_est.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/pi_est.h (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/sync.cc (100%) rename {async-work => src/async-work}/async_pi_estimate/node-addon-api/sync.h (100%) rename {async-work => src/async-work}/async_work_promise/napi/binding.c (100%) rename {async-work => src/async-work}/async_work_promise/napi/binding.gyp (100%) rename {async-work => src/async-work}/async_work_promise/napi/index.js (100%) rename {async-work => src/async-work}/async_work_promise/napi/package.json (100%) rename {async-work => src/async-work}/async_work_promise/node-addon-api/addon.cc (99%) rename {async-work => src/async-work}/async_work_promise/node-addon-api/binding.gyp (100%) rename {async-work => src/async-work}/async_work_promise/node-addon-api/index.js (100%) rename {async-work => src/async-work}/async_work_promise/node-addon-api/package.json (100%) rename {async-work => src/async-work}/async_work_promise/node-addon-api/worker.h (100%) rename {async-work => src/async-work}/async_work_thread_safe_function/napi/binding.c (100%) rename {async-work => src/async-work}/async_work_thread_safe_function/napi/binding.gyp (100%) rename {async-work => src/async-work}/async_work_thread_safe_function/napi/index.js (100%) rename {async-work => src/async-work}/async_work_thread_safe_function/napi/package.json (100%) rename {async-work => src/async-work}/call-js-from-async-worker-execute/node-addon-api/binding.gyp (100%) rename {async-work => src/async-work}/call-js-from-async-worker-execute/node-addon-api/index.js (100%) rename {async-work => src/async-work}/call-js-from-async-worker-execute/node-addon-api/package.json (100%) rename {async-work => src/async-work}/call-js-from-async-worker-execute/node-addon-api/src/binding.cc (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/README.md (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/binding.gyp (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/package.json (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h (100%) rename {async-work => src/async-work}/napi-asyncworker-example/node-addon-api/test/Test.js (100%) rename {context-awareness => src/context-awareness}/napi/binding.gyp (100%) rename {context-awareness => src/context-awareness}/napi/index.js (100%) rename {context-awareness => src/context-awareness}/napi/multiple_load.c (100%) rename {context-awareness => src/context-awareness}/napi/package.json (100%) rename {context-awareness => src/context-awareness}/node_10/binding.gyp (100%) rename {context-awareness => src/context-awareness}/node_10/index.js (100%) rename {context-awareness => src/context-awareness}/node_10/multiple_load.cc (100%) rename {context-awareness => src/context-awareness}/node_10/package.json (100%) rename {events => src/events}/emit_event_from_cpp/node-addon-api/binding.gyp (100%) rename {events => src/events}/emit_event_from_cpp/node-addon-api/index.js (100%) rename {events => src/events}/emit_event_from_cpp/node-addon-api/package.json (100%) rename {events => src/events}/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/binding.gyp (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/index.js (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/package.json (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/src/binding.cc (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc (100%) rename {events => src/events}/inherits_from_event_emitter/node-addon-api/src/native-emitter.h (100%) rename {general => src/general}/1_hello_world/README.md (100%) rename {general => src/general}/1_hello_world/nan/binding.gyp (100%) rename {general => src/general}/1_hello_world/nan/hello.cc (100%) rename {general => src/general}/1_hello_world/nan/hello.js (100%) rename {general => src/general}/1_hello_world/nan/package.json (100%) rename {general => src/general}/1_hello_world/napi/binding.gyp (100%) rename {general => src/general}/1_hello_world/napi/hello.c (100%) rename {general => src/general}/1_hello_world/napi/hello.js (100%) rename {general => src/general}/1_hello_world/napi/package.json (100%) rename {general => src/general}/1_hello_world/node-addon-api-addon-class/binding.gyp (100%) rename {general => src/general}/1_hello_world/node-addon-api-addon-class/hello.cc (73%) rename {general => src/general}/1_hello_world/node-addon-api-addon-class/hello.js (100%) rename {general => src/general}/1_hello_world/node-addon-api-addon-class/package.json (100%) rename {general => src/general}/1_hello_world/node-addon-api/binding.gyp (100%) rename {general => src/general}/1_hello_world/node-addon-api/hello.cc (100%) rename {general => src/general}/1_hello_world/node-addon-api/hello.js (100%) rename {general => src/general}/1_hello_world/node-addon-api/package.json (100%) rename {general => src/general}/2_function_arguments/README.md (100%) rename {general => src/general}/2_function_arguments/nan/addon.cc (100%) rename {general => src/general}/2_function_arguments/nan/addon.js (100%) rename {general => src/general}/2_function_arguments/nan/binding.gyp (100%) rename {general => src/general}/2_function_arguments/nan/package.json (100%) rename {general => src/general}/2_function_arguments/napi/addon.c (100%) rename {general => src/general}/2_function_arguments/napi/addon.js (100%) rename {general => src/general}/2_function_arguments/napi/binding.gyp (100%) rename {general => src/general}/2_function_arguments/napi/package.json (100%) rename {general => src/general}/2_function_arguments/node-addon-api/addon.cc (100%) rename {general => src/general}/2_function_arguments/node-addon-api/addon.js (100%) rename {general => src/general}/2_function_arguments/node-addon-api/binding.gyp (100%) rename {general => src/general}/2_function_arguments/node-addon-api/package.json (100%) rename {general => src/general}/3_callbacks/nan/addon.cc (100%) rename {general => src/general}/3_callbacks/nan/addon.js (100%) rename {general => src/general}/3_callbacks/nan/binding.gyp (100%) rename {general => src/general}/3_callbacks/nan/package.json (100%) rename {general => src/general}/3_callbacks/napi/addon.c (100%) rename {general => src/general}/3_callbacks/napi/addon.js (100%) rename {general => src/general}/3_callbacks/napi/binding.gyp (100%) rename {general => src/general}/3_callbacks/napi/package.json (100%) rename {general => src/general}/3_callbacks/node-addon-api/addon.cc (100%) rename {general => src/general}/3_callbacks/node-addon-api/addon.js (100%) rename {general => src/general}/3_callbacks/node-addon-api/binding.gyp (100%) rename {general => src/general}/3_callbacks/node-addon-api/package.json (100%) rename {general => src/general}/4_object_factory/nan/addon.cc (100%) rename {general => src/general}/4_object_factory/nan/addon.js (100%) rename {general => src/general}/4_object_factory/nan/binding.gyp (100%) rename {general => src/general}/4_object_factory/nan/package.json (100%) rename {general => src/general}/4_object_factory/napi/addon.c (100%) rename {general => src/general}/4_object_factory/napi/addon.js (100%) rename {general => src/general}/4_object_factory/napi/binding.gyp (100%) rename {general => src/general}/4_object_factory/napi/package.json (100%) rename {general => src/general}/4_object_factory/node-addon-api/addon.cc (100%) rename {general => src/general}/4_object_factory/node-addon-api/addon.js (100%) rename {general => src/general}/4_object_factory/node-addon-api/binding.gyp (100%) rename {general => src/general}/4_object_factory/node-addon-api/package.json (100%) rename {general => src/general}/5_function_factory/nan/addon.cc (100%) rename {general => src/general}/5_function_factory/nan/addon.js (100%) rename {general => src/general}/5_function_factory/nan/binding.gyp (100%) rename {general => src/general}/5_function_factory/nan/package.json (100%) rename {general => src/general}/5_function_factory/napi/addon.c (100%) rename {general => src/general}/5_function_factory/napi/addon.js (100%) rename {general => src/general}/5_function_factory/napi/binding.gyp (100%) rename {general => src/general}/5_function_factory/napi/package.json (100%) rename {general => src/general}/5_function_factory/node-addon-api/addon.cc (100%) rename {general => src/general}/5_function_factory/node-addon-api/addon.js (100%) rename {general => src/general}/5_function_factory/node-addon-api/binding.gyp (100%) rename {general => src/general}/5_function_factory/node-addon-api/package.json (100%) rename {general => src/general}/6_object_wrap/nan/addon.cc (100%) rename {general => src/general}/6_object_wrap/nan/addon.js (100%) rename {general => src/general}/6_object_wrap/nan/binding.gyp (100%) rename {general => src/general}/6_object_wrap/nan/myobject.cc (100%) rename {general => src/general}/6_object_wrap/nan/myobject.h (100%) rename {general => src/general}/6_object_wrap/nan/package.json (100%) rename {general => src/general}/6_object_wrap/napi/addon.cc (100%) rename {general => src/general}/6_object_wrap/napi/addon.js (100%) rename {general => src/general}/6_object_wrap/napi/binding.gyp (100%) rename {general => src/general}/6_object_wrap/napi/myobject.cc (100%) rename {general => src/general}/6_object_wrap/napi/myobject.h (100%) rename {general => src/general}/6_object_wrap/napi/package.json (100%) rename {general => src/general}/6_object_wrap/node-addon-api/addon.cc (100%) rename {general => src/general}/6_object_wrap/node-addon-api/addon.js (100%) rename {general => src/general}/6_object_wrap/node-addon-api/binding.gyp (100%) rename {general => src/general}/6_object_wrap/node-addon-api/myobject.cc (100%) rename {general => src/general}/6_object_wrap/node-addon-api/myobject.h (100%) rename {general => src/general}/6_object_wrap/node-addon-api/package.json (100%) rename {general => src/general}/7_factory_wrap/nan/addon.cc (100%) rename {general => src/general}/7_factory_wrap/nan/addon.js (100%) rename {general => src/general}/7_factory_wrap/nan/binding.gyp (100%) rename {general => src/general}/7_factory_wrap/nan/myobject.cc (100%) rename {general => src/general}/7_factory_wrap/nan/myobject.h (100%) rename {general => src/general}/7_factory_wrap/nan/package.json (100%) rename {general => src/general}/7_factory_wrap/napi/addon.cc (100%) rename {general => src/general}/7_factory_wrap/napi/addon.js (100%) rename {general => src/general}/7_factory_wrap/napi/binding.gyp (100%) rename {general => src/general}/7_factory_wrap/napi/myobject.cc (100%) rename {general => src/general}/7_factory_wrap/napi/myobject.h (100%) rename {general => src/general}/7_factory_wrap/napi/package.json (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/addon.cc (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/addon.js (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/binding.gyp (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/myobject.cc (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/myobject.h (100%) rename {general => src/general}/7_factory_wrap/node-addon-api/package.json (100%) rename {general => src/general}/a-first-project/node-addon-api/README.md (100%) rename {general => src/general}/a-first-project/node-addon-api/binding.gyp (100%) rename {general => src/general}/a-first-project/node-addon-api/lib/binding.js (100%) rename {general => src/general}/a-first-project/node-addon-api/package.json (100%) rename {general => src/general}/a-first-project/node-addon-api/src/hello_world.cc (100%) rename {general => src/general}/a-first-project/node-addon-api/test/test_binding.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/addon.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/addon.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/myobject.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/myobject.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/nan/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/addon.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/addon.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/myobject.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/myobject.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/napi/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/addon.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/addon.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/myobject.cc (73%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/myobject.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/8_passing_wrapped/node-addon-api/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/array_buffer_to_native/node-addon-api/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/array_buffer_to_native/node-addon-api/index.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/array_buffer_to_native/node-addon-api/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/README.md (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/nan/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/nan/index.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/nan/object-template-demo.cc (73%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/nan/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/index.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/node-api-common.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/object-template-demo.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/proxy-template.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-template-demo/napi/proxy-template.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/README.md (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/lib/binding.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/src/object_wrap_demo.h (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/object-wrap-demo/node-addon-api/test/test_binding.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/typed_array_to_native/node-addon-api/binding.gyp (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/typed_array_to_native/node-addon-api/index.js (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/typed_array_to_native/node-addon-api/package.json (100%) rename {js-to-native-conversion => src/js-to-native-conversion}/typed_array_to_native/node-addon-api/typed_array_to_native.cc (97%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/binding.gyp (100%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/index.js (100%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/package.json (100%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/src/binding.cc (100%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/src/native-addon.cc (100%) rename {references-and-handle-scope => src/references-and-handle-scope}/function-reference-demo/node-addon-api/src/native-addon.h (100%) rename {threadsafe-function => src/threadsafe-function}/promise-callback-demo/node-addon-api/README.md (100%) rename {threadsafe-function => src/threadsafe-function}/promise-callback-demo/node-addon-api/binding.gyp (100%) rename {threadsafe-function => src/threadsafe-function}/promise-callback-demo/node-addon-api/package.json (100%) rename {threadsafe-function => src/threadsafe-function}/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc (100%) rename {threadsafe-function => src/threadsafe-function}/promise-callback-demo/node-addon-api/test/index.js (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_counting/node-addon-api/addon.cc (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_counting/node-addon-api/addon.js (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_counting/node-addon-api/binding.gyp (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_counting/node-addon-api/package.json (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_round_trip/napi/binding.gyp (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_round_trip/napi/index.js (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_round_trip/napi/package.json (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_round_trip/napi/round_trip.c (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/package.json (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc (100%) rename {threadsafe-function => src/threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js (100%) rename {threadsafe-function => src/threadsafe-function}/threadsafe-async-iterator/node-addon-api/CMakeLists.txt (100%) rename {threadsafe-function => src/threadsafe-function}/threadsafe-async-iterator/node-addon-api/example.cc (100%) rename {threadsafe-function => src/threadsafe-function}/threadsafe-async-iterator/node-addon-api/index.js (100%) rename {threadsafe-function => src/threadsafe-function}/threadsafe-async-iterator/node-addon-api/package.json (100%) rename {threadsafe-function => src/threadsafe-function}/typed_threadsafe_function/node-addon-api/CMakeLists.txt (100%) rename {threadsafe-function => src/threadsafe-function}/typed_threadsafe_function/node-addon-api/clock.cc (72%) rename {threadsafe-function => src/threadsafe-function}/typed_threadsafe_function/node-addon-api/index.js (100%) rename {threadsafe-function => src/threadsafe-function}/typed_threadsafe_function/node-addon-api/package.json (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/CMakeLists.txt (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/README.md (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/cPart.c (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/cPart.h (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/cppPart.cpp (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/index.ts (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/jsPart.js (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/napiPart.cpp (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/package.json (100%) rename {tooling => src/tooling}/typescript_with_addon/node-addon-api/tsconfig.json (100%) delete mode 100644 tooling/build_with_cmake/README.md delete mode 100644 tooling/build_with_cmake/napi/CMakeLists.txt delete mode 100644 tooling/build_with_cmake/napi/hello.c delete mode 100644 tooling/build_with_cmake/napi/hello.js delete mode 100644 tooling/build_with_cmake/napi/package.json delete mode 100644 tooling/build_with_cmake/node-addon-api/CMakeLists.txt delete mode 100644 tooling/build_with_cmake/node-addon-api/hello.cc delete mode 100644 tooling/build_with_cmake/node-addon-api/hello.js delete mode 100644 tooling/build_with_cmake/node-addon-api/package.json diff --git a/async-work/async-iterator/node-addon-api/CMakeLists.txt b/src/async-work/async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from async-work/async-iterator/node-addon-api/CMakeLists.txt rename to src/async-work/async-iterator/node-addon-api/CMakeLists.txt diff --git a/async-work/async-iterator/node-addon-api/example.cc b/src/async-work/async-iterator/node-addon-api/example.cc similarity index 100% rename from async-work/async-iterator/node-addon-api/example.cc rename to src/async-work/async-iterator/node-addon-api/example.cc diff --git a/async-work/async-iterator/node-addon-api/index.js b/src/async-work/async-iterator/node-addon-api/index.js similarity index 100% rename from async-work/async-iterator/node-addon-api/index.js rename to src/async-work/async-iterator/node-addon-api/index.js diff --git a/async-work/async-iterator/node-addon-api/package.json b/src/async-work/async-iterator/node-addon-api/package.json similarity index 100% rename from async-work/async-iterator/node-addon-api/package.json rename to src/async-work/async-iterator/node-addon-api/package.json diff --git a/async-work/async_pi_estimate/nan/README.md b/src/async-work/async_pi_estimate/nan/README.md similarity index 100% rename from async-work/async_pi_estimate/nan/README.md rename to src/async-work/async_pi_estimate/nan/README.md diff --git a/async-work/async_pi_estimate/nan/addon.cc b/src/async-work/async_pi_estimate/nan/addon.cc similarity index 100% rename from async-work/async_pi_estimate/nan/addon.cc rename to src/async-work/async_pi_estimate/nan/addon.cc diff --git a/async-work/async_pi_estimate/nan/addon.js b/src/async-work/async_pi_estimate/nan/addon.js similarity index 100% rename from async-work/async_pi_estimate/nan/addon.js rename to src/async-work/async_pi_estimate/nan/addon.js diff --git a/async-work/async_pi_estimate/nan/async.cc b/src/async-work/async_pi_estimate/nan/async.cc similarity index 100% rename from async-work/async_pi_estimate/nan/async.cc rename to src/async-work/async_pi_estimate/nan/async.cc diff --git a/async-work/async_pi_estimate/nan/async.h b/src/async-work/async_pi_estimate/nan/async.h similarity index 100% rename from async-work/async_pi_estimate/nan/async.h rename to src/async-work/async_pi_estimate/nan/async.h diff --git a/async-work/async_pi_estimate/nan/binding.gyp b/src/async-work/async_pi_estimate/nan/binding.gyp similarity index 100% rename from async-work/async_pi_estimate/nan/binding.gyp rename to src/async-work/async_pi_estimate/nan/binding.gyp diff --git a/async-work/async_pi_estimate/nan/package.json b/src/async-work/async_pi_estimate/nan/package.json similarity index 100% rename from async-work/async_pi_estimate/nan/package.json rename to src/async-work/async_pi_estimate/nan/package.json diff --git a/async-work/async_pi_estimate/nan/pi_est.cc b/src/async-work/async_pi_estimate/nan/pi_est.cc similarity index 100% rename from async-work/async_pi_estimate/nan/pi_est.cc rename to src/async-work/async_pi_estimate/nan/pi_est.cc diff --git a/async-work/async_pi_estimate/nan/pi_est.h b/src/async-work/async_pi_estimate/nan/pi_est.h similarity index 100% rename from async-work/async_pi_estimate/nan/pi_est.h rename to src/async-work/async_pi_estimate/nan/pi_est.h diff --git a/async-work/async_pi_estimate/nan/sync.cc b/src/async-work/async_pi_estimate/nan/sync.cc similarity index 100% rename from async-work/async_pi_estimate/nan/sync.cc rename to src/async-work/async_pi_estimate/nan/sync.cc diff --git a/async-work/async_pi_estimate/nan/sync.h b/src/async-work/async_pi_estimate/nan/sync.h similarity index 100% rename from async-work/async_pi_estimate/nan/sync.h rename to src/async-work/async_pi_estimate/nan/sync.h diff --git a/async-work/async_pi_estimate/node-addon-api/README.md b/src/async-work/async_pi_estimate/node-addon-api/README.md similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/README.md rename to src/async-work/async_pi_estimate/node-addon-api/README.md diff --git a/async-work/async_pi_estimate/node-addon-api/addon.cc b/src/async-work/async_pi_estimate/node-addon-api/addon.cc similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/addon.cc rename to src/async-work/async_pi_estimate/node-addon-api/addon.cc diff --git a/async-work/async_pi_estimate/node-addon-api/addon.js b/src/async-work/async_pi_estimate/node-addon-api/addon.js similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/addon.js rename to src/async-work/async_pi_estimate/node-addon-api/addon.js diff --git a/async-work/async_pi_estimate/node-addon-api/async.cc b/src/async-work/async_pi_estimate/node-addon-api/async.cc similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/async.cc rename to src/async-work/async_pi_estimate/node-addon-api/async.cc diff --git a/async-work/async_pi_estimate/node-addon-api/async.h b/src/async-work/async_pi_estimate/node-addon-api/async.h similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/async.h rename to src/async-work/async_pi_estimate/node-addon-api/async.h diff --git a/async-work/async_pi_estimate/node-addon-api/binding.gyp b/src/async-work/async_pi_estimate/node-addon-api/binding.gyp similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/binding.gyp rename to src/async-work/async_pi_estimate/node-addon-api/binding.gyp diff --git a/async-work/async_pi_estimate/node-addon-api/package.json b/src/async-work/async_pi_estimate/node-addon-api/package.json similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/package.json rename to src/async-work/async_pi_estimate/node-addon-api/package.json diff --git a/async-work/async_pi_estimate/node-addon-api/pi_est.cc b/src/async-work/async_pi_estimate/node-addon-api/pi_est.cc similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/pi_est.cc rename to src/async-work/async_pi_estimate/node-addon-api/pi_est.cc diff --git a/async-work/async_pi_estimate/node-addon-api/pi_est.h b/src/async-work/async_pi_estimate/node-addon-api/pi_est.h similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/pi_est.h rename to src/async-work/async_pi_estimate/node-addon-api/pi_est.h diff --git a/async-work/async_pi_estimate/node-addon-api/sync.cc b/src/async-work/async_pi_estimate/node-addon-api/sync.cc similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/sync.cc rename to src/async-work/async_pi_estimate/node-addon-api/sync.cc diff --git a/async-work/async_pi_estimate/node-addon-api/sync.h b/src/async-work/async_pi_estimate/node-addon-api/sync.h similarity index 100% rename from async-work/async_pi_estimate/node-addon-api/sync.h rename to src/async-work/async_pi_estimate/node-addon-api/sync.h diff --git a/async-work/async_work_promise/napi/binding.c b/src/async-work/async_work_promise/napi/binding.c similarity index 100% rename from async-work/async_work_promise/napi/binding.c rename to src/async-work/async_work_promise/napi/binding.c diff --git a/async-work/async_work_promise/napi/binding.gyp b/src/async-work/async_work_promise/napi/binding.gyp similarity index 100% rename from async-work/async_work_promise/napi/binding.gyp rename to src/async-work/async_work_promise/napi/binding.gyp diff --git a/async-work/async_work_promise/napi/index.js b/src/async-work/async_work_promise/napi/index.js similarity index 100% rename from async-work/async_work_promise/napi/index.js rename to src/async-work/async_work_promise/napi/index.js diff --git a/async-work/async_work_promise/napi/package.json b/src/async-work/async_work_promise/napi/package.json similarity index 100% rename from async-work/async_work_promise/napi/package.json rename to src/async-work/async_work_promise/napi/package.json diff --git a/async-work/async_work_promise/node-addon-api/addon.cc b/src/async-work/async_work_promise/node-addon-api/addon.cc similarity index 99% rename from async-work/async_work_promise/node-addon-api/addon.cc rename to src/async-work/async_work_promise/node-addon-api/addon.cc index 35abd245..ccd2d7a3 100644 --- a/async-work/async_work_promise/node-addon-api/addon.cc +++ b/src/async-work/async_work_promise/node-addon-api/addon.cc @@ -10,14 +10,14 @@ Napi::Value DoHeavyMath(const Napi::CallbackInfo& info) { return env.Undefined(); } uint32_t num_1 = info[0].As().Uint32Value(); - + if (!info[1].IsNumber()) { Napi::TypeError::New(env, "num2 must be a number") .ThrowAsJavaScriptException(); return env.Undefined(); } uint32_t num_2 = info[1].As().Uint32Value(); - + DoHeavyMathWorker* worker = new DoHeavyMathWorker(env, num_1, num_2); worker->Queue(); return worker->GetPromise(); diff --git a/async-work/async_work_promise/node-addon-api/binding.gyp b/src/async-work/async_work_promise/node-addon-api/binding.gyp similarity index 100% rename from async-work/async_work_promise/node-addon-api/binding.gyp rename to src/async-work/async_work_promise/node-addon-api/binding.gyp diff --git a/async-work/async_work_promise/node-addon-api/index.js b/src/async-work/async_work_promise/node-addon-api/index.js similarity index 100% rename from async-work/async_work_promise/node-addon-api/index.js rename to src/async-work/async_work_promise/node-addon-api/index.js diff --git a/async-work/async_work_promise/node-addon-api/package.json b/src/async-work/async_work_promise/node-addon-api/package.json similarity index 100% rename from async-work/async_work_promise/node-addon-api/package.json rename to src/async-work/async_work_promise/node-addon-api/package.json diff --git a/async-work/async_work_promise/node-addon-api/worker.h b/src/async-work/async_work_promise/node-addon-api/worker.h similarity index 100% rename from async-work/async_work_promise/node-addon-api/worker.h rename to src/async-work/async_work_promise/node-addon-api/worker.h diff --git a/async-work/async_work_thread_safe_function/napi/binding.c b/src/async-work/async_work_thread_safe_function/napi/binding.c similarity index 100% rename from async-work/async_work_thread_safe_function/napi/binding.c rename to src/async-work/async_work_thread_safe_function/napi/binding.c diff --git a/async-work/async_work_thread_safe_function/napi/binding.gyp b/src/async-work/async_work_thread_safe_function/napi/binding.gyp similarity index 100% rename from async-work/async_work_thread_safe_function/napi/binding.gyp rename to src/async-work/async_work_thread_safe_function/napi/binding.gyp diff --git a/async-work/async_work_thread_safe_function/napi/index.js b/src/async-work/async_work_thread_safe_function/napi/index.js similarity index 100% rename from async-work/async_work_thread_safe_function/napi/index.js rename to src/async-work/async_work_thread_safe_function/napi/index.js diff --git a/async-work/async_work_thread_safe_function/napi/package.json b/src/async-work/async_work_thread_safe_function/napi/package.json similarity index 100% rename from async-work/async_work_thread_safe_function/napi/package.json rename to src/async-work/async_work_thread_safe_function/napi/package.json diff --git a/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp b/src/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp similarity index 100% rename from async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp rename to src/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp diff --git a/async-work/call-js-from-async-worker-execute/node-addon-api/index.js b/src/async-work/call-js-from-async-worker-execute/node-addon-api/index.js similarity index 100% rename from async-work/call-js-from-async-worker-execute/node-addon-api/index.js rename to src/async-work/call-js-from-async-worker-execute/node-addon-api/index.js diff --git a/async-work/call-js-from-async-worker-execute/node-addon-api/package.json b/src/async-work/call-js-from-async-worker-execute/node-addon-api/package.json similarity index 100% rename from async-work/call-js-from-async-worker-execute/node-addon-api/package.json rename to src/async-work/call-js-from-async-worker-execute/node-addon-api/package.json diff --git a/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc b/src/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc similarity index 100% rename from async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc rename to src/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc diff --git a/async-work/napi-asyncworker-example/node-addon-api/README.md b/src/async-work/napi-asyncworker-example/node-addon-api/README.md similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/README.md rename to src/async-work/napi-asyncworker-example/node-addon-api/README.md diff --git a/async-work/napi-asyncworker-example/node-addon-api/binding.gyp b/src/async-work/napi-asyncworker-example/node-addon-api/binding.gyp similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/binding.gyp rename to src/async-work/napi-asyncworker-example/node-addon-api/binding.gyp diff --git a/async-work/napi-asyncworker-example/node-addon-api/package.json b/src/async-work/napi-asyncworker-example/node-addon-api/package.json similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/package.json rename to src/async-work/napi-asyncworker-example/node-addon-api/package.json diff --git a/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc b/src/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc rename to src/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc diff --git a/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc b/src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc rename to src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc diff --git a/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h b/src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h rename to src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h diff --git a/async-work/napi-asyncworker-example/node-addon-api/test/Test.js b/src/async-work/napi-asyncworker-example/node-addon-api/test/Test.js similarity index 100% rename from async-work/napi-asyncworker-example/node-addon-api/test/Test.js rename to src/async-work/napi-asyncworker-example/node-addon-api/test/Test.js diff --git a/context-awareness/napi/binding.gyp b/src/context-awareness/napi/binding.gyp similarity index 100% rename from context-awareness/napi/binding.gyp rename to src/context-awareness/napi/binding.gyp diff --git a/context-awareness/napi/index.js b/src/context-awareness/napi/index.js similarity index 100% rename from context-awareness/napi/index.js rename to src/context-awareness/napi/index.js diff --git a/context-awareness/napi/multiple_load.c b/src/context-awareness/napi/multiple_load.c similarity index 100% rename from context-awareness/napi/multiple_load.c rename to src/context-awareness/napi/multiple_load.c diff --git a/context-awareness/napi/package.json b/src/context-awareness/napi/package.json similarity index 100% rename from context-awareness/napi/package.json rename to src/context-awareness/napi/package.json diff --git a/context-awareness/node_10/binding.gyp b/src/context-awareness/node_10/binding.gyp similarity index 100% rename from context-awareness/node_10/binding.gyp rename to src/context-awareness/node_10/binding.gyp diff --git a/context-awareness/node_10/index.js b/src/context-awareness/node_10/index.js similarity index 100% rename from context-awareness/node_10/index.js rename to src/context-awareness/node_10/index.js diff --git a/context-awareness/node_10/multiple_load.cc b/src/context-awareness/node_10/multiple_load.cc similarity index 100% rename from context-awareness/node_10/multiple_load.cc rename to src/context-awareness/node_10/multiple_load.cc diff --git a/context-awareness/node_10/package.json b/src/context-awareness/node_10/package.json similarity index 100% rename from context-awareness/node_10/package.json rename to src/context-awareness/node_10/package.json diff --git a/events/emit_event_from_cpp/node-addon-api/binding.gyp b/src/events/emit_event_from_cpp/node-addon-api/binding.gyp similarity index 100% rename from events/emit_event_from_cpp/node-addon-api/binding.gyp rename to src/events/emit_event_from_cpp/node-addon-api/binding.gyp diff --git a/events/emit_event_from_cpp/node-addon-api/index.js b/src/events/emit_event_from_cpp/node-addon-api/index.js similarity index 100% rename from events/emit_event_from_cpp/node-addon-api/index.js rename to src/events/emit_event_from_cpp/node-addon-api/index.js diff --git a/events/emit_event_from_cpp/node-addon-api/package.json b/src/events/emit_event_from_cpp/node-addon-api/package.json similarity index 100% rename from events/emit_event_from_cpp/node-addon-api/package.json rename to src/events/emit_event_from_cpp/node-addon-api/package.json diff --git a/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc b/src/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc similarity index 100% rename from events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc rename to src/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc diff --git a/events/inherits_from_event_emitter/node-addon-api/binding.gyp b/src/events/inherits_from_event_emitter/node-addon-api/binding.gyp similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/binding.gyp rename to src/events/inherits_from_event_emitter/node-addon-api/binding.gyp diff --git a/events/inherits_from_event_emitter/node-addon-api/index.js b/src/events/inherits_from_event_emitter/node-addon-api/index.js similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/index.js rename to src/events/inherits_from_event_emitter/node-addon-api/index.js diff --git a/events/inherits_from_event_emitter/node-addon-api/package.json b/src/events/inherits_from_event_emitter/node-addon-api/package.json similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/package.json rename to src/events/inherits_from_event_emitter/node-addon-api/package.json diff --git a/events/inherits_from_event_emitter/node-addon-api/src/binding.cc b/src/events/inherits_from_event_emitter/node-addon-api/src/binding.cc similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/src/binding.cc rename to src/events/inherits_from_event_emitter/node-addon-api/src/binding.cc diff --git a/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc b/src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc rename to src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc diff --git a/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h b/src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h similarity index 100% rename from events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h rename to src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h diff --git a/general/1_hello_world/README.md b/src/general/1_hello_world/README.md similarity index 100% rename from general/1_hello_world/README.md rename to src/general/1_hello_world/README.md diff --git a/general/1_hello_world/nan/binding.gyp b/src/general/1_hello_world/nan/binding.gyp similarity index 100% rename from general/1_hello_world/nan/binding.gyp rename to src/general/1_hello_world/nan/binding.gyp diff --git a/general/1_hello_world/nan/hello.cc b/src/general/1_hello_world/nan/hello.cc similarity index 100% rename from general/1_hello_world/nan/hello.cc rename to src/general/1_hello_world/nan/hello.cc diff --git a/general/1_hello_world/nan/hello.js b/src/general/1_hello_world/nan/hello.js similarity index 100% rename from general/1_hello_world/nan/hello.js rename to src/general/1_hello_world/nan/hello.js diff --git a/general/1_hello_world/nan/package.json b/src/general/1_hello_world/nan/package.json similarity index 100% rename from general/1_hello_world/nan/package.json rename to src/general/1_hello_world/nan/package.json diff --git a/general/1_hello_world/napi/binding.gyp b/src/general/1_hello_world/napi/binding.gyp similarity index 100% rename from general/1_hello_world/napi/binding.gyp rename to src/general/1_hello_world/napi/binding.gyp diff --git a/general/1_hello_world/napi/hello.c b/src/general/1_hello_world/napi/hello.c similarity index 100% rename from general/1_hello_world/napi/hello.c rename to src/general/1_hello_world/napi/hello.c diff --git a/general/1_hello_world/napi/hello.js b/src/general/1_hello_world/napi/hello.js similarity index 100% rename from general/1_hello_world/napi/hello.js rename to src/general/1_hello_world/napi/hello.js diff --git a/general/1_hello_world/napi/package.json b/src/general/1_hello_world/napi/package.json similarity index 100% rename from general/1_hello_world/napi/package.json rename to src/general/1_hello_world/napi/package.json diff --git a/general/1_hello_world/node-addon-api-addon-class/binding.gyp b/src/general/1_hello_world/node-addon-api-addon-class/binding.gyp similarity index 100% rename from general/1_hello_world/node-addon-api-addon-class/binding.gyp rename to src/general/1_hello_world/node-addon-api-addon-class/binding.gyp diff --git a/general/1_hello_world/node-addon-api-addon-class/hello.cc b/src/general/1_hello_world/node-addon-api-addon-class/hello.cc similarity index 73% rename from general/1_hello_world/node-addon-api-addon-class/hello.cc rename to src/general/1_hello_world/node-addon-api-addon-class/hello.cc index 02429a0a..549ea1ff 100644 --- a/general/1_hello_world/node-addon-api-addon-class/hello.cc +++ b/src/general/1_hello_world/node-addon-api-addon-class/hello.cc @@ -3,9 +3,8 @@ class HelloAddon : public Napi::Addon { public: HelloAddon(Napi::Env env, Napi::Object exports) { - DefineAddon(exports, { - InstanceMethod("hello", &HelloAddon::Hello, napi_enumerable) - }); + DefineAddon(exports, + {InstanceMethod("hello", &HelloAddon::Hello, napi_enumerable)}); } private: diff --git a/general/1_hello_world/node-addon-api-addon-class/hello.js b/src/general/1_hello_world/node-addon-api-addon-class/hello.js similarity index 100% rename from general/1_hello_world/node-addon-api-addon-class/hello.js rename to src/general/1_hello_world/node-addon-api-addon-class/hello.js diff --git a/general/1_hello_world/node-addon-api-addon-class/package.json b/src/general/1_hello_world/node-addon-api-addon-class/package.json similarity index 100% rename from general/1_hello_world/node-addon-api-addon-class/package.json rename to src/general/1_hello_world/node-addon-api-addon-class/package.json diff --git a/general/1_hello_world/node-addon-api/binding.gyp b/src/general/1_hello_world/node-addon-api/binding.gyp similarity index 100% rename from general/1_hello_world/node-addon-api/binding.gyp rename to src/general/1_hello_world/node-addon-api/binding.gyp diff --git a/general/1_hello_world/node-addon-api/hello.cc b/src/general/1_hello_world/node-addon-api/hello.cc similarity index 100% rename from general/1_hello_world/node-addon-api/hello.cc rename to src/general/1_hello_world/node-addon-api/hello.cc diff --git a/general/1_hello_world/node-addon-api/hello.js b/src/general/1_hello_world/node-addon-api/hello.js similarity index 100% rename from general/1_hello_world/node-addon-api/hello.js rename to src/general/1_hello_world/node-addon-api/hello.js diff --git a/general/1_hello_world/node-addon-api/package.json b/src/general/1_hello_world/node-addon-api/package.json similarity index 100% rename from general/1_hello_world/node-addon-api/package.json rename to src/general/1_hello_world/node-addon-api/package.json diff --git a/general/2_function_arguments/README.md b/src/general/2_function_arguments/README.md similarity index 100% rename from general/2_function_arguments/README.md rename to src/general/2_function_arguments/README.md diff --git a/general/2_function_arguments/nan/addon.cc b/src/general/2_function_arguments/nan/addon.cc similarity index 100% rename from general/2_function_arguments/nan/addon.cc rename to src/general/2_function_arguments/nan/addon.cc diff --git a/general/2_function_arguments/nan/addon.js b/src/general/2_function_arguments/nan/addon.js similarity index 100% rename from general/2_function_arguments/nan/addon.js rename to src/general/2_function_arguments/nan/addon.js diff --git a/general/2_function_arguments/nan/binding.gyp b/src/general/2_function_arguments/nan/binding.gyp similarity index 100% rename from general/2_function_arguments/nan/binding.gyp rename to src/general/2_function_arguments/nan/binding.gyp diff --git a/general/2_function_arguments/nan/package.json b/src/general/2_function_arguments/nan/package.json similarity index 100% rename from general/2_function_arguments/nan/package.json rename to src/general/2_function_arguments/nan/package.json diff --git a/general/2_function_arguments/napi/addon.c b/src/general/2_function_arguments/napi/addon.c similarity index 100% rename from general/2_function_arguments/napi/addon.c rename to src/general/2_function_arguments/napi/addon.c diff --git a/general/2_function_arguments/napi/addon.js b/src/general/2_function_arguments/napi/addon.js similarity index 100% rename from general/2_function_arguments/napi/addon.js rename to src/general/2_function_arguments/napi/addon.js diff --git a/general/2_function_arguments/napi/binding.gyp b/src/general/2_function_arguments/napi/binding.gyp similarity index 100% rename from general/2_function_arguments/napi/binding.gyp rename to src/general/2_function_arguments/napi/binding.gyp diff --git a/general/2_function_arguments/napi/package.json b/src/general/2_function_arguments/napi/package.json similarity index 100% rename from general/2_function_arguments/napi/package.json rename to src/general/2_function_arguments/napi/package.json diff --git a/general/2_function_arguments/node-addon-api/addon.cc b/src/general/2_function_arguments/node-addon-api/addon.cc similarity index 100% rename from general/2_function_arguments/node-addon-api/addon.cc rename to src/general/2_function_arguments/node-addon-api/addon.cc diff --git a/general/2_function_arguments/node-addon-api/addon.js b/src/general/2_function_arguments/node-addon-api/addon.js similarity index 100% rename from general/2_function_arguments/node-addon-api/addon.js rename to src/general/2_function_arguments/node-addon-api/addon.js diff --git a/general/2_function_arguments/node-addon-api/binding.gyp b/src/general/2_function_arguments/node-addon-api/binding.gyp similarity index 100% rename from general/2_function_arguments/node-addon-api/binding.gyp rename to src/general/2_function_arguments/node-addon-api/binding.gyp diff --git a/general/2_function_arguments/node-addon-api/package.json b/src/general/2_function_arguments/node-addon-api/package.json similarity index 100% rename from general/2_function_arguments/node-addon-api/package.json rename to src/general/2_function_arguments/node-addon-api/package.json diff --git a/general/3_callbacks/nan/addon.cc b/src/general/3_callbacks/nan/addon.cc similarity index 100% rename from general/3_callbacks/nan/addon.cc rename to src/general/3_callbacks/nan/addon.cc diff --git a/general/3_callbacks/nan/addon.js b/src/general/3_callbacks/nan/addon.js similarity index 100% rename from general/3_callbacks/nan/addon.js rename to src/general/3_callbacks/nan/addon.js diff --git a/general/3_callbacks/nan/binding.gyp b/src/general/3_callbacks/nan/binding.gyp similarity index 100% rename from general/3_callbacks/nan/binding.gyp rename to src/general/3_callbacks/nan/binding.gyp diff --git a/general/3_callbacks/nan/package.json b/src/general/3_callbacks/nan/package.json similarity index 100% rename from general/3_callbacks/nan/package.json rename to src/general/3_callbacks/nan/package.json diff --git a/general/3_callbacks/napi/addon.c b/src/general/3_callbacks/napi/addon.c similarity index 100% rename from general/3_callbacks/napi/addon.c rename to src/general/3_callbacks/napi/addon.c diff --git a/general/3_callbacks/napi/addon.js b/src/general/3_callbacks/napi/addon.js similarity index 100% rename from general/3_callbacks/napi/addon.js rename to src/general/3_callbacks/napi/addon.js diff --git a/general/3_callbacks/napi/binding.gyp b/src/general/3_callbacks/napi/binding.gyp similarity index 100% rename from general/3_callbacks/napi/binding.gyp rename to src/general/3_callbacks/napi/binding.gyp diff --git a/general/3_callbacks/napi/package.json b/src/general/3_callbacks/napi/package.json similarity index 100% rename from general/3_callbacks/napi/package.json rename to src/general/3_callbacks/napi/package.json diff --git a/general/3_callbacks/node-addon-api/addon.cc b/src/general/3_callbacks/node-addon-api/addon.cc similarity index 100% rename from general/3_callbacks/node-addon-api/addon.cc rename to src/general/3_callbacks/node-addon-api/addon.cc diff --git a/general/3_callbacks/node-addon-api/addon.js b/src/general/3_callbacks/node-addon-api/addon.js similarity index 100% rename from general/3_callbacks/node-addon-api/addon.js rename to src/general/3_callbacks/node-addon-api/addon.js diff --git a/general/3_callbacks/node-addon-api/binding.gyp b/src/general/3_callbacks/node-addon-api/binding.gyp similarity index 100% rename from general/3_callbacks/node-addon-api/binding.gyp rename to src/general/3_callbacks/node-addon-api/binding.gyp diff --git a/general/3_callbacks/node-addon-api/package.json b/src/general/3_callbacks/node-addon-api/package.json similarity index 100% rename from general/3_callbacks/node-addon-api/package.json rename to src/general/3_callbacks/node-addon-api/package.json diff --git a/general/4_object_factory/nan/addon.cc b/src/general/4_object_factory/nan/addon.cc similarity index 100% rename from general/4_object_factory/nan/addon.cc rename to src/general/4_object_factory/nan/addon.cc diff --git a/general/4_object_factory/nan/addon.js b/src/general/4_object_factory/nan/addon.js similarity index 100% rename from general/4_object_factory/nan/addon.js rename to src/general/4_object_factory/nan/addon.js diff --git a/general/4_object_factory/nan/binding.gyp b/src/general/4_object_factory/nan/binding.gyp similarity index 100% rename from general/4_object_factory/nan/binding.gyp rename to src/general/4_object_factory/nan/binding.gyp diff --git a/general/4_object_factory/nan/package.json b/src/general/4_object_factory/nan/package.json similarity index 100% rename from general/4_object_factory/nan/package.json rename to src/general/4_object_factory/nan/package.json diff --git a/general/4_object_factory/napi/addon.c b/src/general/4_object_factory/napi/addon.c similarity index 100% rename from general/4_object_factory/napi/addon.c rename to src/general/4_object_factory/napi/addon.c diff --git a/general/4_object_factory/napi/addon.js b/src/general/4_object_factory/napi/addon.js similarity index 100% rename from general/4_object_factory/napi/addon.js rename to src/general/4_object_factory/napi/addon.js diff --git a/general/4_object_factory/napi/binding.gyp b/src/general/4_object_factory/napi/binding.gyp similarity index 100% rename from general/4_object_factory/napi/binding.gyp rename to src/general/4_object_factory/napi/binding.gyp diff --git a/general/4_object_factory/napi/package.json b/src/general/4_object_factory/napi/package.json similarity index 100% rename from general/4_object_factory/napi/package.json rename to src/general/4_object_factory/napi/package.json diff --git a/general/4_object_factory/node-addon-api/addon.cc b/src/general/4_object_factory/node-addon-api/addon.cc similarity index 100% rename from general/4_object_factory/node-addon-api/addon.cc rename to src/general/4_object_factory/node-addon-api/addon.cc diff --git a/general/4_object_factory/node-addon-api/addon.js b/src/general/4_object_factory/node-addon-api/addon.js similarity index 100% rename from general/4_object_factory/node-addon-api/addon.js rename to src/general/4_object_factory/node-addon-api/addon.js diff --git a/general/4_object_factory/node-addon-api/binding.gyp b/src/general/4_object_factory/node-addon-api/binding.gyp similarity index 100% rename from general/4_object_factory/node-addon-api/binding.gyp rename to src/general/4_object_factory/node-addon-api/binding.gyp diff --git a/general/4_object_factory/node-addon-api/package.json b/src/general/4_object_factory/node-addon-api/package.json similarity index 100% rename from general/4_object_factory/node-addon-api/package.json rename to src/general/4_object_factory/node-addon-api/package.json diff --git a/general/5_function_factory/nan/addon.cc b/src/general/5_function_factory/nan/addon.cc similarity index 100% rename from general/5_function_factory/nan/addon.cc rename to src/general/5_function_factory/nan/addon.cc diff --git a/general/5_function_factory/nan/addon.js b/src/general/5_function_factory/nan/addon.js similarity index 100% rename from general/5_function_factory/nan/addon.js rename to src/general/5_function_factory/nan/addon.js diff --git a/general/5_function_factory/nan/binding.gyp b/src/general/5_function_factory/nan/binding.gyp similarity index 100% rename from general/5_function_factory/nan/binding.gyp rename to src/general/5_function_factory/nan/binding.gyp diff --git a/general/5_function_factory/nan/package.json b/src/general/5_function_factory/nan/package.json similarity index 100% rename from general/5_function_factory/nan/package.json rename to src/general/5_function_factory/nan/package.json diff --git a/general/5_function_factory/napi/addon.c b/src/general/5_function_factory/napi/addon.c similarity index 100% rename from general/5_function_factory/napi/addon.c rename to src/general/5_function_factory/napi/addon.c diff --git a/general/5_function_factory/napi/addon.js b/src/general/5_function_factory/napi/addon.js similarity index 100% rename from general/5_function_factory/napi/addon.js rename to src/general/5_function_factory/napi/addon.js diff --git a/general/5_function_factory/napi/binding.gyp b/src/general/5_function_factory/napi/binding.gyp similarity index 100% rename from general/5_function_factory/napi/binding.gyp rename to src/general/5_function_factory/napi/binding.gyp diff --git a/general/5_function_factory/napi/package.json b/src/general/5_function_factory/napi/package.json similarity index 100% rename from general/5_function_factory/napi/package.json rename to src/general/5_function_factory/napi/package.json diff --git a/general/5_function_factory/node-addon-api/addon.cc b/src/general/5_function_factory/node-addon-api/addon.cc similarity index 100% rename from general/5_function_factory/node-addon-api/addon.cc rename to src/general/5_function_factory/node-addon-api/addon.cc diff --git a/general/5_function_factory/node-addon-api/addon.js b/src/general/5_function_factory/node-addon-api/addon.js similarity index 100% rename from general/5_function_factory/node-addon-api/addon.js rename to src/general/5_function_factory/node-addon-api/addon.js diff --git a/general/5_function_factory/node-addon-api/binding.gyp b/src/general/5_function_factory/node-addon-api/binding.gyp similarity index 100% rename from general/5_function_factory/node-addon-api/binding.gyp rename to src/general/5_function_factory/node-addon-api/binding.gyp diff --git a/general/5_function_factory/node-addon-api/package.json b/src/general/5_function_factory/node-addon-api/package.json similarity index 100% rename from general/5_function_factory/node-addon-api/package.json rename to src/general/5_function_factory/node-addon-api/package.json diff --git a/general/6_object_wrap/nan/addon.cc b/src/general/6_object_wrap/nan/addon.cc similarity index 100% rename from general/6_object_wrap/nan/addon.cc rename to src/general/6_object_wrap/nan/addon.cc diff --git a/general/6_object_wrap/nan/addon.js b/src/general/6_object_wrap/nan/addon.js similarity index 100% rename from general/6_object_wrap/nan/addon.js rename to src/general/6_object_wrap/nan/addon.js diff --git a/general/6_object_wrap/nan/binding.gyp b/src/general/6_object_wrap/nan/binding.gyp similarity index 100% rename from general/6_object_wrap/nan/binding.gyp rename to src/general/6_object_wrap/nan/binding.gyp diff --git a/general/6_object_wrap/nan/myobject.cc b/src/general/6_object_wrap/nan/myobject.cc similarity index 100% rename from general/6_object_wrap/nan/myobject.cc rename to src/general/6_object_wrap/nan/myobject.cc diff --git a/general/6_object_wrap/nan/myobject.h b/src/general/6_object_wrap/nan/myobject.h similarity index 100% rename from general/6_object_wrap/nan/myobject.h rename to src/general/6_object_wrap/nan/myobject.h diff --git a/general/6_object_wrap/nan/package.json b/src/general/6_object_wrap/nan/package.json similarity index 100% rename from general/6_object_wrap/nan/package.json rename to src/general/6_object_wrap/nan/package.json diff --git a/general/6_object_wrap/napi/addon.cc b/src/general/6_object_wrap/napi/addon.cc similarity index 100% rename from general/6_object_wrap/napi/addon.cc rename to src/general/6_object_wrap/napi/addon.cc diff --git a/general/6_object_wrap/napi/addon.js b/src/general/6_object_wrap/napi/addon.js similarity index 100% rename from general/6_object_wrap/napi/addon.js rename to src/general/6_object_wrap/napi/addon.js diff --git a/general/6_object_wrap/napi/binding.gyp b/src/general/6_object_wrap/napi/binding.gyp similarity index 100% rename from general/6_object_wrap/napi/binding.gyp rename to src/general/6_object_wrap/napi/binding.gyp diff --git a/general/6_object_wrap/napi/myobject.cc b/src/general/6_object_wrap/napi/myobject.cc similarity index 100% rename from general/6_object_wrap/napi/myobject.cc rename to src/general/6_object_wrap/napi/myobject.cc diff --git a/general/6_object_wrap/napi/myobject.h b/src/general/6_object_wrap/napi/myobject.h similarity index 100% rename from general/6_object_wrap/napi/myobject.h rename to src/general/6_object_wrap/napi/myobject.h diff --git a/general/6_object_wrap/napi/package.json b/src/general/6_object_wrap/napi/package.json similarity index 100% rename from general/6_object_wrap/napi/package.json rename to src/general/6_object_wrap/napi/package.json diff --git a/general/6_object_wrap/node-addon-api/addon.cc b/src/general/6_object_wrap/node-addon-api/addon.cc similarity index 100% rename from general/6_object_wrap/node-addon-api/addon.cc rename to src/general/6_object_wrap/node-addon-api/addon.cc diff --git a/general/6_object_wrap/node-addon-api/addon.js b/src/general/6_object_wrap/node-addon-api/addon.js similarity index 100% rename from general/6_object_wrap/node-addon-api/addon.js rename to src/general/6_object_wrap/node-addon-api/addon.js diff --git a/general/6_object_wrap/node-addon-api/binding.gyp b/src/general/6_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from general/6_object_wrap/node-addon-api/binding.gyp rename to src/general/6_object_wrap/node-addon-api/binding.gyp diff --git a/general/6_object_wrap/node-addon-api/myobject.cc b/src/general/6_object_wrap/node-addon-api/myobject.cc similarity index 100% rename from general/6_object_wrap/node-addon-api/myobject.cc rename to src/general/6_object_wrap/node-addon-api/myobject.cc diff --git a/general/6_object_wrap/node-addon-api/myobject.h b/src/general/6_object_wrap/node-addon-api/myobject.h similarity index 100% rename from general/6_object_wrap/node-addon-api/myobject.h rename to src/general/6_object_wrap/node-addon-api/myobject.h diff --git a/general/6_object_wrap/node-addon-api/package.json b/src/general/6_object_wrap/node-addon-api/package.json similarity index 100% rename from general/6_object_wrap/node-addon-api/package.json rename to src/general/6_object_wrap/node-addon-api/package.json diff --git a/general/7_factory_wrap/nan/addon.cc b/src/general/7_factory_wrap/nan/addon.cc similarity index 100% rename from general/7_factory_wrap/nan/addon.cc rename to src/general/7_factory_wrap/nan/addon.cc diff --git a/general/7_factory_wrap/nan/addon.js b/src/general/7_factory_wrap/nan/addon.js similarity index 100% rename from general/7_factory_wrap/nan/addon.js rename to src/general/7_factory_wrap/nan/addon.js diff --git a/general/7_factory_wrap/nan/binding.gyp b/src/general/7_factory_wrap/nan/binding.gyp similarity index 100% rename from general/7_factory_wrap/nan/binding.gyp rename to src/general/7_factory_wrap/nan/binding.gyp diff --git a/general/7_factory_wrap/nan/myobject.cc b/src/general/7_factory_wrap/nan/myobject.cc similarity index 100% rename from general/7_factory_wrap/nan/myobject.cc rename to src/general/7_factory_wrap/nan/myobject.cc diff --git a/general/7_factory_wrap/nan/myobject.h b/src/general/7_factory_wrap/nan/myobject.h similarity index 100% rename from general/7_factory_wrap/nan/myobject.h rename to src/general/7_factory_wrap/nan/myobject.h diff --git a/general/7_factory_wrap/nan/package.json b/src/general/7_factory_wrap/nan/package.json similarity index 100% rename from general/7_factory_wrap/nan/package.json rename to src/general/7_factory_wrap/nan/package.json diff --git a/general/7_factory_wrap/napi/addon.cc b/src/general/7_factory_wrap/napi/addon.cc similarity index 100% rename from general/7_factory_wrap/napi/addon.cc rename to src/general/7_factory_wrap/napi/addon.cc diff --git a/general/7_factory_wrap/napi/addon.js b/src/general/7_factory_wrap/napi/addon.js similarity index 100% rename from general/7_factory_wrap/napi/addon.js rename to src/general/7_factory_wrap/napi/addon.js diff --git a/general/7_factory_wrap/napi/binding.gyp b/src/general/7_factory_wrap/napi/binding.gyp similarity index 100% rename from general/7_factory_wrap/napi/binding.gyp rename to src/general/7_factory_wrap/napi/binding.gyp diff --git a/general/7_factory_wrap/napi/myobject.cc b/src/general/7_factory_wrap/napi/myobject.cc similarity index 100% rename from general/7_factory_wrap/napi/myobject.cc rename to src/general/7_factory_wrap/napi/myobject.cc diff --git a/general/7_factory_wrap/napi/myobject.h b/src/general/7_factory_wrap/napi/myobject.h similarity index 100% rename from general/7_factory_wrap/napi/myobject.h rename to src/general/7_factory_wrap/napi/myobject.h diff --git a/general/7_factory_wrap/napi/package.json b/src/general/7_factory_wrap/napi/package.json similarity index 100% rename from general/7_factory_wrap/napi/package.json rename to src/general/7_factory_wrap/napi/package.json diff --git a/general/7_factory_wrap/node-addon-api/addon.cc b/src/general/7_factory_wrap/node-addon-api/addon.cc similarity index 100% rename from general/7_factory_wrap/node-addon-api/addon.cc rename to src/general/7_factory_wrap/node-addon-api/addon.cc diff --git a/general/7_factory_wrap/node-addon-api/addon.js b/src/general/7_factory_wrap/node-addon-api/addon.js similarity index 100% rename from general/7_factory_wrap/node-addon-api/addon.js rename to src/general/7_factory_wrap/node-addon-api/addon.js diff --git a/general/7_factory_wrap/node-addon-api/binding.gyp b/src/general/7_factory_wrap/node-addon-api/binding.gyp similarity index 100% rename from general/7_factory_wrap/node-addon-api/binding.gyp rename to src/general/7_factory_wrap/node-addon-api/binding.gyp diff --git a/general/7_factory_wrap/node-addon-api/myobject.cc b/src/general/7_factory_wrap/node-addon-api/myobject.cc similarity index 100% rename from general/7_factory_wrap/node-addon-api/myobject.cc rename to src/general/7_factory_wrap/node-addon-api/myobject.cc diff --git a/general/7_factory_wrap/node-addon-api/myobject.h b/src/general/7_factory_wrap/node-addon-api/myobject.h similarity index 100% rename from general/7_factory_wrap/node-addon-api/myobject.h rename to src/general/7_factory_wrap/node-addon-api/myobject.h diff --git a/general/7_factory_wrap/node-addon-api/package.json b/src/general/7_factory_wrap/node-addon-api/package.json similarity index 100% rename from general/7_factory_wrap/node-addon-api/package.json rename to src/general/7_factory_wrap/node-addon-api/package.json diff --git a/general/a-first-project/node-addon-api/README.md b/src/general/a-first-project/node-addon-api/README.md similarity index 100% rename from general/a-first-project/node-addon-api/README.md rename to src/general/a-first-project/node-addon-api/README.md diff --git a/general/a-first-project/node-addon-api/binding.gyp b/src/general/a-first-project/node-addon-api/binding.gyp similarity index 100% rename from general/a-first-project/node-addon-api/binding.gyp rename to src/general/a-first-project/node-addon-api/binding.gyp diff --git a/general/a-first-project/node-addon-api/lib/binding.js b/src/general/a-first-project/node-addon-api/lib/binding.js similarity index 100% rename from general/a-first-project/node-addon-api/lib/binding.js rename to src/general/a-first-project/node-addon-api/lib/binding.js diff --git a/general/a-first-project/node-addon-api/package.json b/src/general/a-first-project/node-addon-api/package.json similarity index 100% rename from general/a-first-project/node-addon-api/package.json rename to src/general/a-first-project/node-addon-api/package.json diff --git a/general/a-first-project/node-addon-api/src/hello_world.cc b/src/general/a-first-project/node-addon-api/src/hello_world.cc similarity index 100% rename from general/a-first-project/node-addon-api/src/hello_world.cc rename to src/general/a-first-project/node-addon-api/src/hello_world.cc diff --git a/general/a-first-project/node-addon-api/test/test_binding.js b/src/general/a-first-project/node-addon-api/test/test_binding.js similarity index 100% rename from general/a-first-project/node-addon-api/test/test_binding.js rename to src/general/a-first-project/node-addon-api/test/test_binding.js diff --git a/js-to-native-conversion/8_passing_wrapped/nan/addon.cc b/src/js-to-native-conversion/8_passing_wrapped/nan/addon.cc similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/addon.cc rename to src/js-to-native-conversion/8_passing_wrapped/nan/addon.cc diff --git a/js-to-native-conversion/8_passing_wrapped/nan/addon.js b/src/js-to-native-conversion/8_passing_wrapped/nan/addon.js similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/addon.js rename to src/js-to-native-conversion/8_passing_wrapped/nan/addon.js diff --git a/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp b/src/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/binding.gyp rename to src/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp diff --git a/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc b/src/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/myobject.cc rename to src/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc diff --git a/js-to-native-conversion/8_passing_wrapped/nan/myobject.h b/src/js-to-native-conversion/8_passing_wrapped/nan/myobject.h similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/myobject.h rename to src/js-to-native-conversion/8_passing_wrapped/nan/myobject.h diff --git a/js-to-native-conversion/8_passing_wrapped/nan/package.json b/src/js-to-native-conversion/8_passing_wrapped/nan/package.json similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/nan/package.json rename to src/js-to-native-conversion/8_passing_wrapped/nan/package.json diff --git a/js-to-native-conversion/8_passing_wrapped/napi/addon.cc b/src/js-to-native-conversion/8_passing_wrapped/napi/addon.cc similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/addon.cc rename to src/js-to-native-conversion/8_passing_wrapped/napi/addon.cc diff --git a/js-to-native-conversion/8_passing_wrapped/napi/addon.js b/src/js-to-native-conversion/8_passing_wrapped/napi/addon.js similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/addon.js rename to src/js-to-native-conversion/8_passing_wrapped/napi/addon.js diff --git a/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp b/src/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/binding.gyp rename to src/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp diff --git a/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc b/src/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/myobject.cc rename to src/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc diff --git a/js-to-native-conversion/8_passing_wrapped/napi/myobject.h b/src/js-to-native-conversion/8_passing_wrapped/napi/myobject.h similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/myobject.h rename to src/js-to-native-conversion/8_passing_wrapped/napi/myobject.h diff --git a/js-to-native-conversion/8_passing_wrapped/napi/package.json b/src/js-to-native-conversion/8_passing_wrapped/napi/package.json similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/napi/package.json rename to src/js-to-native-conversion/8_passing_wrapped/napi/package.json diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc similarity index 73% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc index 02254e13..7083269c 100644 --- a/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc +++ b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc @@ -12,8 +12,9 @@ void MyObject::Init(Napi::Env env, Napi::Object exports) { Napi::FunctionReference* constructor = new Napi::FunctionReference(); *constructor = Napi::Persistent(func); - env.SetInstanceData(constructor); //NOTE: this assumes only 1 class is exported - //for multiple exported classes, need a struct or other mechanism + env.SetInstanceData(constructor); // NOTE: this assumes only 1 class is + // exported for multiple exported classes, + // need a struct or other mechanism exports.Set("MyObject", func); } diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h diff --git a/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json b/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json similarity index 100% rename from js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json rename to src/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json diff --git a/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc b/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc similarity index 100% rename from js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc rename to src/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc diff --git a/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp b/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp similarity index 100% rename from js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp rename to src/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp diff --git a/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js b/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js similarity index 100% rename from js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js rename to src/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js diff --git a/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json b/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json similarity index 100% rename from js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json rename to src/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json diff --git a/js-to-native-conversion/object-template-demo/README.md b/src/js-to-native-conversion/object-template-demo/README.md similarity index 100% rename from js-to-native-conversion/object-template-demo/README.md rename to src/js-to-native-conversion/object-template-demo/README.md diff --git a/js-to-native-conversion/object-template-demo/nan/binding.gyp b/src/js-to-native-conversion/object-template-demo/nan/binding.gyp similarity index 100% rename from js-to-native-conversion/object-template-demo/nan/binding.gyp rename to src/js-to-native-conversion/object-template-demo/nan/binding.gyp diff --git a/js-to-native-conversion/object-template-demo/nan/index.js b/src/js-to-native-conversion/object-template-demo/nan/index.js similarity index 100% rename from js-to-native-conversion/object-template-demo/nan/index.js rename to src/js-to-native-conversion/object-template-demo/nan/index.js diff --git a/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc b/src/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc similarity index 73% rename from js-to-native-conversion/object-template-demo/nan/object-template-demo.cc rename to src/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc index 8ab5f47d..d8ee11b2 100644 --- a/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc +++ b/src/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc @@ -15,9 +15,9 @@ class NamedInterceptor : public ObjectWrap { char buf[256]; public: - NamedInterceptor() { std::strncpy(this->buf, "foo", sizeof (this->buf)); } + NamedInterceptor() { std::strncpy(this->buf, "foo", sizeof(this->buf)); } static NAN_MODULE_INIT(Init); - static v8::Local NewInstance (); + static v8::Local NewInstance(); static NAN_METHOD(New); static NAN_PROPERTY_GETTER(PropertyGetter); @@ -35,33 +35,32 @@ NAN_METHOD(CreateNew) { NAN_MODULE_INIT(NamedInterceptor::Init) { v8::Local tpl = - Nan::New(NamedInterceptor::New); + Nan::New(NamedInterceptor::New); namedinterceptors_constructor.Reset(tpl); tpl->SetClassName(Nan::New("NamedInterceptor").ToLocalChecked()); tpl->InstanceTemplate()->SetInternalFieldCount(1); v8::Local inst = tpl->InstanceTemplate(); - SetNamedPropertyHandler( - inst - , NamedInterceptor::PropertyGetter - , NamedInterceptor::PropertySetter - , NamedInterceptor::PropertyQuery - , NamedInterceptor::PropertyDeleter - , NamedInterceptor::PropertyEnumerator); + SetNamedPropertyHandler(inst, + NamedInterceptor::PropertyGetter, + NamedInterceptor::PropertySetter, + NamedInterceptor::PropertyQuery, + NamedInterceptor::PropertyDeleter, + NamedInterceptor::PropertyEnumerator); v8::Local createnew = - Nan::GetFunction(Nan::New(CreateNew)) - .ToLocalChecked(); + Nan::GetFunction(Nan::New(CreateNew)) + .ToLocalChecked(); Set(target, Nan::New("create").ToLocalChecked(), createnew); } -v8::Local NamedInterceptor::NewInstance () { +v8::Local NamedInterceptor::NewInstance() { EscapableHandleScope scope; v8::Local constructorHandle = Nan::New(namedinterceptors_constructor); v8::Local instance = - Nan::NewInstance(GetFunction(constructorHandle).ToLocalChecked()) - .ToLocalChecked(); + Nan::NewInstance(GetFunction(constructorHandle).ToLocalChecked()) + .ToLocalChecked(); return scope.Escape(instance); } @@ -71,10 +70,9 @@ NAN_METHOD(NamedInterceptor::New) { info.GetReturnValue().Set(info.This()); } - NAN_PROPERTY_GETTER(NamedInterceptor::PropertyGetter) { NamedInterceptor* interceptor = - ObjectWrap::Unwrap(info.Holder()); + ObjectWrap::Unwrap(info.Holder()); if (!std::strcmp(*Nan::Utf8String(property), "prop")) { info.GetReturnValue().Set(Nan::New(interceptor->buf).ToLocalChecked()); } else { @@ -84,12 +82,10 @@ NAN_PROPERTY_GETTER(NamedInterceptor::PropertyGetter) { NAN_PROPERTY_SETTER(NamedInterceptor::PropertySetter) { NamedInterceptor* interceptor = - ObjectWrap::Unwrap(info.Holder()); + ObjectWrap::Unwrap(info.Holder()); if (!std::strcmp(*Nan::Utf8String(property), "prop")) { std::strncpy( - interceptor->buf - , *Nan::Utf8String(value) - , sizeof (interceptor->buf)); + interceptor->buf, *Nan::Utf8String(value), sizeof(interceptor->buf)); info.GetReturnValue().Set(info.This()); } else { info.GetReturnValue().Set(info.This()); @@ -104,8 +100,8 @@ NAN_PROPERTY_ENUMERATOR(NamedInterceptor::PropertyEnumerator) { NAN_PROPERTY_DELETER(NamedInterceptor::PropertyDeleter) { NamedInterceptor* interceptor = - ObjectWrap::Unwrap(info.Holder()); - std::strncpy(interceptor->buf, "goober", sizeof (interceptor->buf)); + ObjectWrap::Unwrap(info.Holder()); + std::strncpy(interceptor->buf, "goober", sizeof(interceptor->buf)); info.GetReturnValue().Set(True()); } diff --git a/js-to-native-conversion/object-template-demo/nan/package.json b/src/js-to-native-conversion/object-template-demo/nan/package.json similarity index 100% rename from js-to-native-conversion/object-template-demo/nan/package.json rename to src/js-to-native-conversion/object-template-demo/nan/package.json diff --git a/js-to-native-conversion/object-template-demo/napi/binding.gyp b/src/js-to-native-conversion/object-template-demo/napi/binding.gyp similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/binding.gyp rename to src/js-to-native-conversion/object-template-demo/napi/binding.gyp diff --git a/js-to-native-conversion/object-template-demo/napi/index.js b/src/js-to-native-conversion/object-template-demo/napi/index.js similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/index.js rename to src/js-to-native-conversion/object-template-demo/napi/index.js diff --git a/js-to-native-conversion/object-template-demo/napi/node-api-common.h b/src/js-to-native-conversion/object-template-demo/napi/node-api-common.h similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/node-api-common.h rename to src/js-to-native-conversion/object-template-demo/napi/node-api-common.h diff --git a/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc b/src/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/object-template-demo.cc rename to src/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc index 6846e1fc..5b049202 100644 --- a/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc +++ b/src/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc @@ -1,5 +1,5 @@ -#include #include +#include #include #include "proxy-template.h" diff --git a/js-to-native-conversion/object-template-demo/napi/package.json b/src/js-to-native-conversion/object-template-demo/napi/package.json similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/package.json rename to src/js-to-native-conversion/object-template-demo/napi/package.json diff --git a/js-to-native-conversion/object-template-demo/napi/proxy-template.cc b/src/js-to-native-conversion/object-template-demo/napi/proxy-template.cc similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/proxy-template.cc rename to src/js-to-native-conversion/object-template-demo/napi/proxy-template.cc diff --git a/js-to-native-conversion/object-template-demo/napi/proxy-template.h b/src/js-to-native-conversion/object-template-demo/napi/proxy-template.h similarity index 100% rename from js-to-native-conversion/object-template-demo/napi/proxy-template.h rename to src/js-to-native-conversion/object-template-demo/napi/proxy-template.h diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/README.md rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/package.json rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h diff --git a/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js b/src/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js similarity index 100% rename from js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js rename to src/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js diff --git a/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp b/src/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp similarity index 100% rename from js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp rename to src/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp diff --git a/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js b/src/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js similarity index 100% rename from js-to-native-conversion/typed_array_to_native/node-addon-api/index.js rename to src/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js diff --git a/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json b/src/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json similarity index 100% rename from js-to-native-conversion/typed_array_to_native/node-addon-api/package.json rename to src/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json diff --git a/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc b/src/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc similarity index 97% rename from js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc rename to src/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc index d46cbf47..f82b5776 100644 --- a/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc +++ b/src/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc @@ -94,8 +94,9 @@ static Napi::Value CreateByteArray(const Napi::CallbackInfo& info) { // unique_ptr ownership. nativeArray.release(); - Napi::Uint8Array byteArray = Napi::Uint8Array::New(info.Env(), arrayLength, arrayBuffer, 0); - + Napi::Uint8Array byteArray = + Napi::Uint8Array::New(info.Env(), arrayLength, arrayBuffer, 0); + return byteArray; } diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp b/src/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/index.js b/src/references-and-handle-scope/function-reference-demo/node-addon-api/index.js similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/index.js rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/index.js diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/package.json b/src/references-and-handle-scope/function-reference-demo/node-addon-api/package.json similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/package.json rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/package.json diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc b/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc b/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc diff --git a/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h b/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h similarity index 100% rename from references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h rename to src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h diff --git a/threadsafe-function/promise-callback-demo/node-addon-api/README.md b/src/threadsafe-function/promise-callback-demo/node-addon-api/README.md similarity index 100% rename from threadsafe-function/promise-callback-demo/node-addon-api/README.md rename to src/threadsafe-function/promise-callback-demo/node-addon-api/README.md diff --git a/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp b/src/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp similarity index 100% rename from threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp rename to src/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp diff --git a/threadsafe-function/promise-callback-demo/node-addon-api/package.json b/src/threadsafe-function/promise-callback-demo/node-addon-api/package.json similarity index 100% rename from threadsafe-function/promise-callback-demo/node-addon-api/package.json rename to src/threadsafe-function/promise-callback-demo/node-addon-api/package.json diff --git a/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc b/src/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc similarity index 100% rename from threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc rename to src/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc diff --git a/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js b/src/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js similarity index 100% rename from threadsafe-function/promise-callback-demo/node-addon-api/test/index.js rename to src/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js diff --git a/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc b/src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc similarity index 100% rename from threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc rename to src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc diff --git a/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js b/src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js similarity index 100% rename from threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js rename to src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js diff --git a/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp b/src/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp similarity index 100% rename from threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp rename to src/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp diff --git a/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json b/src/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json similarity index 100% rename from threadsafe-function/thread_safe_function_counting/node-addon-api/package.json rename to src/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json diff --git a/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp b/src/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp similarity index 100% rename from threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp rename to src/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp diff --git a/threadsafe-function/thread_safe_function_round_trip/napi/index.js b/src/threadsafe-function/thread_safe_function_round_trip/napi/index.js similarity index 100% rename from threadsafe-function/thread_safe_function_round_trip/napi/index.js rename to src/threadsafe-function/thread_safe_function_round_trip/napi/index.js diff --git a/threadsafe-function/thread_safe_function_round_trip/napi/package.json b/src/threadsafe-function/thread_safe_function_round_trip/napi/package.json similarity index 100% rename from threadsafe-function/thread_safe_function_round_trip/napi/package.json rename to src/threadsafe-function/thread_safe_function_round_trip/napi/package.json diff --git a/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c b/src/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c similarity index 100% rename from threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c rename to src/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c diff --git a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp b/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp rename to src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp diff --git a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json b/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json similarity index 100% rename from threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json rename to src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json diff --git a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc b/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc similarity index 100% rename from threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc rename to src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc diff --git a/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js b/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js similarity index 100% rename from threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js rename to src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js diff --git a/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt b/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt rename to src/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt diff --git a/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc b/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc similarity index 100% rename from threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc rename to src/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc diff --git a/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js b/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js similarity index 100% rename from threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js rename to src/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js diff --git a/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json b/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json similarity index 100% rename from threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json rename to src/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json diff --git a/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt b/src/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt similarity index 100% rename from threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt rename to src/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt diff --git a/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc b/src/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc similarity index 72% rename from threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc rename to src/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc index f2af5ee4..2055ea7b 100644 --- a/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc +++ b/src/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc @@ -1,19 +1,19 @@ -#include #include +#include #include using namespace Napi; using Context = Reference; using DataType = int; -void CallJs(Napi::Env env, Function callback, Context *context, DataType *data); +void CallJs(Napi::Env env, Function callback, Context* context, DataType* data); using TSFN = TypedThreadSafeFunction; using FinalizerDataType = void; std::thread nativeThread; TSFN tsfn; -Value Start(const CallbackInfo &info) { +Value Start(const CallbackInfo& info) { Napi::Env env = info.Env(); if (info.Length() < 2) { @@ -28,18 +28,19 @@ Value Start(const CallbackInfo &info) { // Create a new context set to the the receiver (ie, `this`) of the function // call - Context *context = new Reference(Persistent(info.This())); + Context* context = new Reference(Persistent(info.This())); // Create a ThreadSafeFunction tsfn = TSFN::New( env, - info[0].As(), // JavaScript function called asynchronously - "Resource Name", // Name - 0, // Unlimited queue - 1, // Only one thread will use this initially + info[0].As(), // JavaScript function called asynchronously + "Resource Name", // Name + 0, // Unlimited queue + 1, // Only one thread will use this initially context, - [](Napi::Env, FinalizerDataType *, - Context *ctx) { // Finalizer used to clean threads up + [](Napi::Env, + FinalizerDataType*, + Context* ctx) { // Finalizer used to clean threads up nativeThread.join(); delete ctx; }); @@ -48,7 +49,7 @@ Value Start(const CallbackInfo &info) { nativeThread = std::thread([count] { for (int i = 0; i < count; i++) { // Create new data - int *value = new int(clock()); + int* value = new int(clock()); // Perform a blocking call napi_status status = tsfn.BlockingCall(value); @@ -69,13 +70,15 @@ Value Start(const CallbackInfo &info) { // Transform native data into JS data, passing it to the provided // `callback` -- the TSFN's JavaScript function. -void CallJs(Napi::Env env, Function callback, Context *context, - DataType *data) { +void CallJs(Napi::Env env, + Function callback, + Context* context, + DataType* data) { // Is the JavaScript environment still available to call into, eg. the TSFN is // not aborted if (env != nullptr) { - // On Node-API 5+, the `callback` parameter is optional; however, this example - // does ensure a callback is provided. + // On Node-API 5+, the `callback` parameter is optional; however, this + // example does ensure a callback is provided. if (callback != nullptr) { callback.Call(context->Value(), {Number::New(env, *data)}); } diff --git a/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js b/src/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js similarity index 100% rename from threadsafe-function/typed_threadsafe_function/node-addon-api/index.js rename to src/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js diff --git a/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json b/src/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json similarity index 100% rename from threadsafe-function/typed_threadsafe_function/node-addon-api/package.json rename to src/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json diff --git a/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt b/src/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/CMakeLists.txt rename to src/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt diff --git a/tooling/typescript_with_addon/node-addon-api/README.md b/src/tooling/typescript_with_addon/node-addon-api/README.md similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/README.md rename to src/tooling/typescript_with_addon/node-addon-api/README.md diff --git a/tooling/typescript_with_addon/node-addon-api/cPart.c b/src/tooling/typescript_with_addon/node-addon-api/cPart.c similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/cPart.c rename to src/tooling/typescript_with_addon/node-addon-api/cPart.c diff --git a/tooling/typescript_with_addon/node-addon-api/cPart.h b/src/tooling/typescript_with_addon/node-addon-api/cPart.h similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/cPart.h rename to src/tooling/typescript_with_addon/node-addon-api/cPart.h diff --git a/tooling/typescript_with_addon/node-addon-api/cppPart.cpp b/src/tooling/typescript_with_addon/node-addon-api/cppPart.cpp similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/cppPart.cpp rename to src/tooling/typescript_with_addon/node-addon-api/cppPart.cpp diff --git a/tooling/typescript_with_addon/node-addon-api/index.ts b/src/tooling/typescript_with_addon/node-addon-api/index.ts similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/index.ts rename to src/tooling/typescript_with_addon/node-addon-api/index.ts diff --git a/tooling/typescript_with_addon/node-addon-api/jsPart.js b/src/tooling/typescript_with_addon/node-addon-api/jsPart.js similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/jsPart.js rename to src/tooling/typescript_with_addon/node-addon-api/jsPart.js diff --git a/tooling/typescript_with_addon/node-addon-api/napiPart.cpp b/src/tooling/typescript_with_addon/node-addon-api/napiPart.cpp similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/napiPart.cpp rename to src/tooling/typescript_with_addon/node-addon-api/napiPart.cpp diff --git a/tooling/typescript_with_addon/node-addon-api/package.json b/src/tooling/typescript_with_addon/node-addon-api/package.json similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/package.json rename to src/tooling/typescript_with_addon/node-addon-api/package.json diff --git a/tooling/typescript_with_addon/node-addon-api/tsconfig.json b/src/tooling/typescript_with_addon/node-addon-api/tsconfig.json similarity index 100% rename from tooling/typescript_with_addon/node-addon-api/tsconfig.json rename to src/tooling/typescript_with_addon/node-addon-api/tsconfig.json diff --git a/test_all.js b/test_all.js index 8145534c..81d36e0e 100644 --- a/test_all.js +++ b/test_all.js @@ -5,6 +5,7 @@ const chalk = require("chalk"); const semver = require("semver"); const excludeFolder = ["node_modules", "website"]; +const examplesFolder = path.join(__dirname, "src"); function getAllExamples(pathToCheck) { const directoriesToTest = []; @@ -28,7 +29,7 @@ const passed = []; const failedInstalls = []; const noTest = []; const failedTests = []; -for (directoryToTest of getAllExamples(path.join(__dirname))) { +for (directoryToTest of getAllExamples(examplesFolder)) { console.log(chalk.green(`testing: ${directoryToTest}`)); const pkgJson = require(path.join(directoryToTest, "package.json")); if (pkgJson.engines && pkgJson.engines.node) { diff --git a/tooling/build_with_cmake/README.md b/tooling/build_with_cmake/README.md deleted file mode 100644 index f7d5c18e..00000000 --- a/tooling/build_with_cmake/README.md +++ /dev/null @@ -1,33 +0,0 @@ -## Building Node-API Addons Using CMake.js - -### Examples - -The objective of these examples is to demonstrate how to build Node-API addons using [CMake.js](https://github.com/cmake-js/cmake-js#readme). - -These example projects assume that CMake.js has been installed globally: - -``` -npm install -g cmake-js -cmake-js --help -``` - -Then, in each of the `napi` and `node-addon-api` directories, the following commands build and test each addon: - -``` -npm install -npm test -``` - -Complete CMake.js documentation can be found on the [CMake.js GitHub repository](https://github.com/cmake-js/cmake-js#readme). - -### NAPI_VERSION - -When building Node-API addons, it's important to specify to the build system the Node-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 Node-API is ABI-stable, your Node-API addon will work, without recompilation, with the Node-API version you specify in `NAPI_VERSION` and all subsequent Node-API versions. - -In the absence of a need for features available only in a specific Node-API version, version 3 is a good choice as it is the version of Node-API that was active when Node-API left experimental status. \ No newline at end of file diff --git a/tooling/build_with_cmake/napi/CMakeLists.txt b/tooling/build_with_cmake/napi/CMakeLists.txt deleted file mode 100644 index f87b9bb1..00000000 --- a/tooling/build_with_cmake/napi/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -cmake_policy(SET CMP0042 NEW) -set (CMAKE_CXX_STANDARD 11) - -project (build-napi-with-cmake) -include_directories(${CMAKE_JS_INC}) -file(GLOB SOURCE_FILES "hello.c") -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) -set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") -target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) - -# Define NAPI_VERSION -add_definitions(-DNAPI_VERSION=3) diff --git a/tooling/build_with_cmake/napi/hello.c b/tooling/build_with_cmake/napi/hello.c deleted file mode 100644 index 8ae1eee9..00000000 --- a/tooling/build_with_cmake/napi/hello.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -static napi_value Method(napi_env env, napi_callback_info info) { - napi_status status; - napi_value world; - status = napi_create_string_utf8(env, "Hello, world!", 13, &world); - assert(status == napi_ok); - return world; -} - -#define DECLARE_NAPI_METHOD(name, func) \ - { name, 0, func, 0, 0, 0, napi_default, 0 } - -static napi_value Init(napi_env env, napi_value exports) { - napi_status status; - napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method); - status = napi_define_properties(env, exports, 1, &desc); - assert(status == napi_ok); - return exports; -} - -NAPI_MODULE(hello, Init) diff --git a/tooling/build_with_cmake/napi/hello.js b/tooling/build_with_cmake/napi/hello.js deleted file mode 100644 index 5940bf9e..00000000 --- a/tooling/build_with_cmake/napi/hello.js +++ /dev/null @@ -1,3 +0,0 @@ -var addon = require('bindings')('build-napi-with-cmake'); - -console.log(addon.hello()); // 'world' diff --git a/tooling/build_with_cmake/napi/package.json b/tooling/build_with_cmake/napi/package.json deleted file mode 100644 index 10f23730..00000000 --- a/tooling/build_with_cmake/napi/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "build-napi-with-cmake", - "version": "0.0.0", - "description": "Build Node-API native addon with CMake.", - "main": "hello.js", - "private": true, - "dependencies": { - "bindings": "~1.2.1" - }, - "scripts": { - "install": "cmake-js compile", - "test": "node hello.js" - } -} diff --git a/tooling/build_with_cmake/node-addon-api/CMakeLists.txt b/tooling/build_with_cmake/node-addon-api/CMakeLists.txt deleted file mode 100644 index 456d2312..00000000 --- a/tooling/build_with_cmake/node-addon-api/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -cmake_minimum_required(VERSION 3.9) -cmake_policy(SET CMP0042 NEW) -set (CMAKE_CXX_STANDARD 11) - -project (build-node-addon-api-with-cmake) -include_directories(${CMAKE_JS_INC}) -file(GLOB SOURCE_FILES "hello.cc") -add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) -set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") -target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) - -# Include Node-API wrappers -execute_process(COMMAND node -p "require('node-addon-api').include" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE NODE_ADDON_API_DIR - ) -string(REGEX REPLACE "[\r\n\"]" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) - -target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR}) - -# define NAPI_VERSION -add_definitions(-DNAPI_VERSION=3) diff --git a/tooling/build_with_cmake/node-addon-api/hello.cc b/tooling/build_with_cmake/node-addon-api/hello.cc deleted file mode 100644 index 1c422da3..00000000 --- a/tooling/build_with_cmake/node-addon-api/hello.cc +++ /dev/null @@ -1,23 +0,0 @@ -#include - -static Napi::String Method(const Napi::CallbackInfo& info) { - // Napi::Env is the opaque data structure containing the environment in which - // the request is being run. We will need this env when we want to create any - // new objects inside of the node.js environment - Napi::Env env = info.Env(); - - // Create a C++ level variable - std::string helloWorld = "Hello, world!"; - - // Return a new javascript string that we copy-construct inside of the node.js - // environment - return Napi::String::New(env, helloWorld); -} - -static Napi::Object Init(Napi::Env env, Napi::Object exports) { - exports.Set(Napi::String::New(env, "hello"), - Napi::Function::New(env, Method)); - return exports; -} - -NODE_API_MODULE(hello, Init) diff --git a/tooling/build_with_cmake/node-addon-api/hello.js b/tooling/build_with_cmake/node-addon-api/hello.js deleted file mode 100644 index 7edb5d3e..00000000 --- a/tooling/build_with_cmake/node-addon-api/hello.js +++ /dev/null @@ -1,3 +0,0 @@ -var addon = require('bindings')('build-node-addon-api-with-cmake'); - -console.log(addon.hello()); // 'world' diff --git a/tooling/build_with_cmake/node-addon-api/package.json b/tooling/build_with_cmake/node-addon-api/package.json deleted file mode 100644 index 6aedf0d0..00000000 --- a/tooling/build_with_cmake/node-addon-api/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "build-node-addon-api-with-cmake", - "version": "0.0.0", - "description": "Build Node-API native addon with CMake and node-addon-api C++ wrapper.", - "main": "hello.js", - "private": true, - "dependencies": { - "bindings": "~1.2.1", - "node-addon-api": "^1.0.0" - }, - "scripts": { - "install": "cmake-js compile", - "test": "node hello.js" - } -} From f15cfc9f3c842673231d04e61fb6379f6ea88278 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:06:07 +0200 Subject: [PATCH 10/17] refactor: add numbers to categories so they are ordered in the src folder --- src/{general => 1-getting-started}/1_hello_world/README.md | 0 src/{general => 1-getting-started}/1_hello_world/nan/binding.gyp | 0 src/{general => 1-getting-started}/1_hello_world/nan/hello.cc | 0 src/{general => 1-getting-started}/1_hello_world/nan/hello.js | 0 src/{general => 1-getting-started}/1_hello_world/nan/package.json | 0 src/{general => 1-getting-started}/1_hello_world/napi/binding.gyp | 0 src/{general => 1-getting-started}/1_hello_world/napi/hello.c | 0 src/{general => 1-getting-started}/1_hello_world/napi/hello.js | 0 .../1_hello_world/napi/package.json | 0 .../1_hello_world/node-addon-api-addon-class/binding.gyp | 0 .../1_hello_world/node-addon-api-addon-class/hello.cc | 0 .../1_hello_world/node-addon-api-addon-class/hello.js | 0 .../1_hello_world/node-addon-api-addon-class/package.json | 0 .../1_hello_world/node-addon-api/binding.gyp | 0 .../1_hello_world/node-addon-api/hello.cc | 0 .../1_hello_world/node-addon-api/hello.js | 0 .../1_hello_world/node-addon-api/package.json | 0 src/{general => 1-getting-started}/2_function_arguments/README.md | 0 .../2_function_arguments/nan/addon.cc | 0 .../2_function_arguments/nan/addon.js | 0 .../2_function_arguments/nan/binding.gyp | 0 .../2_function_arguments/nan/package.json | 0 .../2_function_arguments/napi/addon.c | 0 .../2_function_arguments/napi/addon.js | 0 .../2_function_arguments/napi/binding.gyp | 0 .../2_function_arguments/napi/package.json | 0 .../2_function_arguments/node-addon-api/addon.cc | 0 .../2_function_arguments/node-addon-api/addon.js | 0 .../2_function_arguments/node-addon-api/binding.gyp | 0 .../2_function_arguments/node-addon-api/package.json | 0 src/{general => 1-getting-started}/3_callbacks/nan/addon.cc | 0 src/{general => 1-getting-started}/3_callbacks/nan/addon.js | 0 src/{general => 1-getting-started}/3_callbacks/nan/binding.gyp | 0 src/{general => 1-getting-started}/3_callbacks/nan/package.json | 0 src/{general => 1-getting-started}/3_callbacks/napi/addon.c | 0 src/{general => 1-getting-started}/3_callbacks/napi/addon.js | 0 src/{general => 1-getting-started}/3_callbacks/napi/binding.gyp | 0 src/{general => 1-getting-started}/3_callbacks/napi/package.json | 0 .../3_callbacks/node-addon-api/addon.cc | 0 .../3_callbacks/node-addon-api/addon.js | 0 .../3_callbacks/node-addon-api/binding.gyp | 0 .../3_callbacks/node-addon-api/package.json | 0 src/{general => 1-getting-started}/4_object_factory/nan/addon.cc | 0 src/{general => 1-getting-started}/4_object_factory/nan/addon.js | 0 .../4_object_factory/nan/binding.gyp | 0 .../4_object_factory/nan/package.json | 0 src/{general => 1-getting-started}/4_object_factory/napi/addon.c | 0 src/{general => 1-getting-started}/4_object_factory/napi/addon.js | 0 .../4_object_factory/napi/binding.gyp | 0 .../4_object_factory/napi/package.json | 0 .../4_object_factory/node-addon-api/addon.cc | 0 .../4_object_factory/node-addon-api/addon.js | 0 .../4_object_factory/node-addon-api/binding.gyp | 0 .../4_object_factory/node-addon-api/package.json | 0 .../5_function_factory/nan/addon.cc | 0 .../5_function_factory/nan/addon.js | 0 .../5_function_factory/nan/binding.gyp | 0 .../5_function_factory/nan/package.json | 0 .../5_function_factory/napi/addon.c | 0 .../5_function_factory/napi/addon.js | 0 .../5_function_factory/napi/binding.gyp | 0 .../5_function_factory/napi/package.json | 0 .../5_function_factory/node-addon-api/addon.cc | 0 .../5_function_factory/node-addon-api/addon.js | 0 .../5_function_factory/node-addon-api/binding.gyp | 0 .../5_function_factory/node-addon-api/package.json | 0 src/{general => 1-getting-started}/6_object_wrap/nan/addon.cc | 0 src/{general => 1-getting-started}/6_object_wrap/nan/addon.js | 0 src/{general => 1-getting-started}/6_object_wrap/nan/binding.gyp | 0 src/{general => 1-getting-started}/6_object_wrap/nan/myobject.cc | 0 src/{general => 1-getting-started}/6_object_wrap/nan/myobject.h | 0 src/{general => 1-getting-started}/6_object_wrap/nan/package.json | 0 src/{general => 1-getting-started}/6_object_wrap/napi/addon.cc | 0 src/{general => 1-getting-started}/6_object_wrap/napi/addon.js | 0 src/{general => 1-getting-started}/6_object_wrap/napi/binding.gyp | 0 src/{general => 1-getting-started}/6_object_wrap/napi/myobject.cc | 0 src/{general => 1-getting-started}/6_object_wrap/napi/myobject.h | 0 .../6_object_wrap/napi/package.json | 0 .../6_object_wrap/node-addon-api/addon.cc | 0 .../6_object_wrap/node-addon-api/addon.js | 0 .../6_object_wrap/node-addon-api/binding.gyp | 0 .../6_object_wrap/node-addon-api/myobject.cc | 0 .../6_object_wrap/node-addon-api/myobject.h | 0 .../6_object_wrap/node-addon-api/package.json | 0 src/{general => 1-getting-started}/7_factory_wrap/nan/addon.cc | 0 src/{general => 1-getting-started}/7_factory_wrap/nan/addon.js | 0 src/{general => 1-getting-started}/7_factory_wrap/nan/binding.gyp | 0 src/{general => 1-getting-started}/7_factory_wrap/nan/myobject.cc | 0 src/{general => 1-getting-started}/7_factory_wrap/nan/myobject.h | 0 .../7_factory_wrap/nan/package.json | 0 src/{general => 1-getting-started}/7_factory_wrap/napi/addon.cc | 0 src/{general => 1-getting-started}/7_factory_wrap/napi/addon.js | 0 .../7_factory_wrap/napi/binding.gyp | 0 .../7_factory_wrap/napi/myobject.cc | 0 src/{general => 1-getting-started}/7_factory_wrap/napi/myobject.h | 0 .../7_factory_wrap/napi/package.json | 0 .../7_factory_wrap/node-addon-api/addon.cc | 0 .../7_factory_wrap/node-addon-api/addon.js | 0 .../7_factory_wrap/node-addon-api/binding.gyp | 0 .../7_factory_wrap/node-addon-api/myobject.cc | 0 .../7_factory_wrap/node-addon-api/myobject.h | 0 .../7_factory_wrap/node-addon-api/package.json | 0 .../a-first-project/node-addon-api/README.md | 0 .../a-first-project/node-addon-api/binding.gyp | 0 .../a-first-project/node-addon-api/lib/binding.js | 0 .../a-first-project/node-addon-api/package.json | 0 .../a-first-project/node-addon-api/src/hello_world.cc | 0 .../a-first-project/node-addon-api/test/test_binding.js | 0 .../8_passing_wrapped/nan/addon.cc | 0 .../8_passing_wrapped/nan/addon.js | 0 .../8_passing_wrapped/nan/binding.gyp | 0 .../8_passing_wrapped/nan/myobject.cc | 0 .../8_passing_wrapped/nan/myobject.h | 0 .../8_passing_wrapped/nan/package.json | 0 .../8_passing_wrapped/napi/addon.cc | 0 .../8_passing_wrapped/napi/addon.js | 0 .../8_passing_wrapped/napi/binding.gyp | 0 .../8_passing_wrapped/napi/myobject.cc | 0 .../8_passing_wrapped/napi/myobject.h | 0 .../8_passing_wrapped/napi/package.json | 0 .../8_passing_wrapped/node-addon-api/addon.cc | 0 .../8_passing_wrapped/node-addon-api/addon.js | 0 .../8_passing_wrapped/node-addon-api/binding.gyp | 0 .../8_passing_wrapped/node-addon-api/myobject.cc | 0 .../8_passing_wrapped/node-addon-api/myobject.h | 0 .../8_passing_wrapped/node-addon-api/package.json | 0 .../node-addon-api/array_buffer_to_native.cc | 0 .../array_buffer_to_native/node-addon-api/binding.gyp | 0 .../array_buffer_to_native/node-addon-api/index.js | 0 .../array_buffer_to_native/node-addon-api/package.json | 0 .../object-template-demo/README.md | 0 .../object-template-demo/nan/binding.gyp | 0 .../object-template-demo/nan/index.js | 0 .../object-template-demo/nan/object-template-demo.cc | 0 .../object-template-demo/nan/package.json | 0 .../object-template-demo/napi/binding.gyp | 0 .../object-template-demo/napi/index.js | 0 .../object-template-demo/napi/node-api-common.h | 0 .../object-template-demo/napi/object-template-demo.cc | 0 .../object-template-demo/napi/package.json | 0 .../object-template-demo/napi/proxy-template.cc | 0 .../object-template-demo/napi/proxy-template.h | 0 .../object-wrap-demo/node-addon-api/README.md | 0 .../object-wrap-demo/node-addon-api/binding.gyp | 0 .../object-wrap-demo/node-addon-api/lib/binding.js | 0 .../object-wrap-demo/node-addon-api/package.json | 0 .../object-wrap-demo/node-addon-api/src/object_wrap_demo.cc | 0 .../object-wrap-demo/node-addon-api/src/object_wrap_demo.h | 0 .../object-wrap-demo/node-addon-api/test/test_binding.js | 0 .../typed_array_to_native/node-addon-api/binding.gyp | 0 .../typed_array_to_native/node-addon-api/index.js | 0 .../typed_array_to_native/node-addon-api/package.json | 0 .../typed_array_to_native/node-addon-api/typed_array_to_native.cc | 0 src/{context-awareness => 3-context-awareness}/napi/binding.gyp | 0 src/{context-awareness => 3-context-awareness}/napi/index.js | 0 .../napi/multiple_load.c | 0 src/{context-awareness => 3-context-awareness}/napi/package.json | 0 .../node_10/binding.gyp | 0 src/{context-awareness => 3-context-awareness}/node_10/index.js | 0 .../node_10/multiple_load.cc | 0 .../node_10/package.json | 0 .../function-reference-demo/node-addon-api/binding.gyp | 0 .../function-reference-demo/node-addon-api/index.js | 0 .../function-reference-demo/node-addon-api/package.json | 0 .../function-reference-demo/node-addon-api/src/binding.cc | 0 .../function-reference-demo/node-addon-api/src/native-addon.cc | 0 .../function-reference-demo/node-addon-api/src/native-addon.h | 0 .../async-iterator/node-addon-api/CMakeLists.txt | 0 .../async-iterator/node-addon-api/example.cc | 0 .../async-iterator/node-addon-api/index.js | 0 .../async-iterator/node-addon-api/package.json | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/README.md | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/addon.cc | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/addon.js | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/async.cc | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/async.h | 0 .../async_pi_estimate/nan/binding.gyp | 0 .../async_pi_estimate/nan/package.json | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/pi_est.cc | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/pi_est.h | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/sync.cc | 0 src/{async-work => 5-async-work}/async_pi_estimate/nan/sync.h | 0 .../async_pi_estimate/node-addon-api/README.md | 0 .../async_pi_estimate/node-addon-api/addon.cc | 0 .../async_pi_estimate/node-addon-api/addon.js | 0 .../async_pi_estimate/node-addon-api/async.cc | 0 .../async_pi_estimate/node-addon-api/async.h | 0 .../async_pi_estimate/node-addon-api/binding.gyp | 0 .../async_pi_estimate/node-addon-api/package.json | 0 .../async_pi_estimate/node-addon-api/pi_est.cc | 0 .../async_pi_estimate/node-addon-api/pi_est.h | 0 .../async_pi_estimate/node-addon-api/sync.cc | 0 .../async_pi_estimate/node-addon-api/sync.h | 0 .../async_work_promise/napi/binding.c | 0 .../async_work_promise/napi/binding.gyp | 0 src/{async-work => 5-async-work}/async_work_promise/napi/index.js | 0 .../async_work_promise/napi/package.json | 0 .../async_work_promise/node-addon-api/addon.cc | 0 .../async_work_promise/node-addon-api/binding.gyp | 0 .../async_work_promise/node-addon-api/index.js | 0 .../async_work_promise/node-addon-api/package.json | 0 .../async_work_promise/node-addon-api/worker.h | 0 .../async_work_thread_safe_function/napi/binding.c | 0 .../async_work_thread_safe_function/napi/binding.gyp | 0 .../async_work_thread_safe_function/napi/index.js | 0 .../async_work_thread_safe_function/napi/package.json | 0 .../call-js-from-async-worker-execute/node-addon-api/binding.gyp | 0 .../call-js-from-async-worker-execute/node-addon-api/index.js | 0 .../call-js-from-async-worker-execute/node-addon-api/package.json | 0 .../node-addon-api/src/binding.cc | 0 .../napi-asyncworker-example/node-addon-api/README.md | 0 .../napi-asyncworker-example/node-addon-api/binding.gyp | 0 .../napi-asyncworker-example/node-addon-api/package.json | 0 .../node-addon-api/src/RunSimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.cc | 0 .../node-addon-api/src/SimpleAsyncWorker.h | 0 .../napi-asyncworker-example/node-addon-api/test/Test.js | 0 .../promise-callback-demo/node-addon-api/README.md | 0 .../promise-callback-demo/node-addon-api/binding.gyp | 0 .../promise-callback-demo/node-addon-api/package.json | 0 .../node-addon-api/src/promise_callback_demo.cc | 0 .../promise-callback-demo/node-addon-api/test/index.js | 0 .../thread_safe_function_counting/node-addon-api/addon.cc | 0 .../thread_safe_function_counting/node-addon-api/addon.js | 0 .../thread_safe_function_counting/node-addon-api/binding.gyp | 0 .../thread_safe_function_counting/node-addon-api/package.json | 0 .../thread_safe_function_round_trip/napi/binding.gyp | 0 .../thread_safe_function_round_trip/napi/index.js | 0 .../thread_safe_function_round_trip/napi/package.json | 0 .../thread_safe_function_round_trip/napi/round_trip.c | 0 .../node-addon-api/binding.gyp | 0 .../node-addon-api/package.json | 0 .../node-addon-api/tsfn_object_wrap.cc | 0 .../node-addon-api/tsfn_object_wrap.js | 0 .../threadsafe-async-iterator/node-addon-api/CMakeLists.txt | 0 .../threadsafe-async-iterator/node-addon-api/example.cc | 0 .../threadsafe-async-iterator/node-addon-api/index.js | 0 .../threadsafe-async-iterator/node-addon-api/package.json | 0 .../typed_threadsafe_function/node-addon-api/CMakeLists.txt | 0 .../typed_threadsafe_function/node-addon-api/clock.cc | 0 .../typed_threadsafe_function/node-addon-api/index.js | 0 .../typed_threadsafe_function/node-addon-api/package.json | 0 .../emit_event_from_cpp/node-addon-api/binding.gyp | 0 .../emit_event_from_cpp/node-addon-api/index.js | 0 .../emit_event_from_cpp/node-addon-api/package.json | 0 .../emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc | 0 .../inherits_from_event_emitter/node-addon-api/binding.gyp | 0 .../inherits_from_event_emitter/node-addon-api/index.js | 0 .../inherits_from_event_emitter/node-addon-api/package.json | 0 .../inherits_from_event_emitter/node-addon-api/src/binding.cc | 0 .../node-addon-api/src/native-emitter.cc | 0 .../node-addon-api/src/native-emitter.h | 0 .../typescript_with_addon/node-addon-api/CMakeLists.txt | 0 .../typescript_with_addon/node-addon-api/README.md | 0 .../typescript_with_addon/node-addon-api/cPart.c | 0 .../typescript_with_addon/node-addon-api/cPart.h | 0 .../typescript_with_addon/node-addon-api/cppPart.cpp | 0 .../typescript_with_addon/node-addon-api/index.ts | 0 .../typescript_with_addon/node-addon-api/jsPart.js | 0 .../typescript_with_addon/node-addon-api/napiPart.cpp | 0 .../typescript_with_addon/node-addon-api/package.json | 0 .../typescript_with_addon/node-addon-api/tsconfig.json | 0 262 files changed, 0 insertions(+), 0 deletions(-) rename src/{general => 1-getting-started}/1_hello_world/README.md (100%) rename src/{general => 1-getting-started}/1_hello_world/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/1_hello_world/nan/hello.cc (100%) rename src/{general => 1-getting-started}/1_hello_world/nan/hello.js (100%) rename src/{general => 1-getting-started}/1_hello_world/nan/package.json (100%) rename src/{general => 1-getting-started}/1_hello_world/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/1_hello_world/napi/hello.c (100%) rename src/{general => 1-getting-started}/1_hello_world/napi/hello.js (100%) rename src/{general => 1-getting-started}/1_hello_world/napi/package.json (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api-addon-class/binding.gyp (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api-addon-class/hello.cc (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api-addon-class/hello.js (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api-addon-class/package.json (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api/hello.cc (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api/hello.js (100%) rename src/{general => 1-getting-started}/1_hello_world/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/2_function_arguments/README.md (100%) rename src/{general => 1-getting-started}/2_function_arguments/nan/addon.cc (100%) rename src/{general => 1-getting-started}/2_function_arguments/nan/addon.js (100%) rename src/{general => 1-getting-started}/2_function_arguments/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/2_function_arguments/nan/package.json (100%) rename src/{general => 1-getting-started}/2_function_arguments/napi/addon.c (100%) rename src/{general => 1-getting-started}/2_function_arguments/napi/addon.js (100%) rename src/{general => 1-getting-started}/2_function_arguments/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/2_function_arguments/napi/package.json (100%) rename src/{general => 1-getting-started}/2_function_arguments/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/2_function_arguments/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/2_function_arguments/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/2_function_arguments/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/3_callbacks/nan/addon.cc (100%) rename src/{general => 1-getting-started}/3_callbacks/nan/addon.js (100%) rename src/{general => 1-getting-started}/3_callbacks/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/3_callbacks/nan/package.json (100%) rename src/{general => 1-getting-started}/3_callbacks/napi/addon.c (100%) rename src/{general => 1-getting-started}/3_callbacks/napi/addon.js (100%) rename src/{general => 1-getting-started}/3_callbacks/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/3_callbacks/napi/package.json (100%) rename src/{general => 1-getting-started}/3_callbacks/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/3_callbacks/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/3_callbacks/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/3_callbacks/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/4_object_factory/nan/addon.cc (100%) rename src/{general => 1-getting-started}/4_object_factory/nan/addon.js (100%) rename src/{general => 1-getting-started}/4_object_factory/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/4_object_factory/nan/package.json (100%) rename src/{general => 1-getting-started}/4_object_factory/napi/addon.c (100%) rename src/{general => 1-getting-started}/4_object_factory/napi/addon.js (100%) rename src/{general => 1-getting-started}/4_object_factory/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/4_object_factory/napi/package.json (100%) rename src/{general => 1-getting-started}/4_object_factory/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/4_object_factory/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/4_object_factory/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/4_object_factory/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/5_function_factory/nan/addon.cc (100%) rename src/{general => 1-getting-started}/5_function_factory/nan/addon.js (100%) rename src/{general => 1-getting-started}/5_function_factory/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/5_function_factory/nan/package.json (100%) rename src/{general => 1-getting-started}/5_function_factory/napi/addon.c (100%) rename src/{general => 1-getting-started}/5_function_factory/napi/addon.js (100%) rename src/{general => 1-getting-started}/5_function_factory/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/5_function_factory/napi/package.json (100%) rename src/{general => 1-getting-started}/5_function_factory/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/5_function_factory/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/5_function_factory/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/5_function_factory/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/addon.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/addon.js (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/myobject.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/myobject.h (100%) rename src/{general => 1-getting-started}/6_object_wrap/nan/package.json (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/addon.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/addon.js (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/myobject.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/myobject.h (100%) rename src/{general => 1-getting-started}/6_object_wrap/napi/package.json (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/myobject.cc (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/myobject.h (100%) rename src/{general => 1-getting-started}/6_object_wrap/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/addon.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/addon.js (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/binding.gyp (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/myobject.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/myobject.h (100%) rename src/{general => 1-getting-started}/7_factory_wrap/nan/package.json (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/addon.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/addon.js (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/binding.gyp (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/myobject.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/myobject.h (100%) rename src/{general => 1-getting-started}/7_factory_wrap/napi/package.json (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/addon.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/addon.js (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/myobject.cc (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/myobject.h (100%) rename src/{general => 1-getting-started}/7_factory_wrap/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/README.md (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/binding.gyp (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/lib/binding.js (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/package.json (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/src/hello_world.cc (100%) rename src/{general => 1-getting-started}/a-first-project/node-addon-api/test/test_binding.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/addon.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/addon.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/myobject.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/myobject.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/nan/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/addon.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/addon.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/myobject.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/myobject.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/napi/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/addon.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/addon.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/myobject.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/myobject.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/8_passing_wrapped/node-addon-api/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/array_buffer_to_native/node-addon-api/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/array_buffer_to_native/node-addon-api/index.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/array_buffer_to_native/node-addon-api/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/README.md (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/nan/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/nan/index.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/nan/object-template-demo.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/nan/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/index.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/node-api-common.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/object-template-demo.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/proxy-template.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-template-demo/napi/proxy-template.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/README.md (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/lib/binding.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/src/object_wrap_demo.h (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/object-wrap-demo/node-addon-api/test/test_binding.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/typed_array_to_native/node-addon-api/binding.gyp (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/typed_array_to_native/node-addon-api/index.js (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/typed_array_to_native/node-addon-api/package.json (100%) rename src/{js-to-native-conversion => 2-js-to-native-conversion}/typed_array_to_native/node-addon-api/typed_array_to_native.cc (100%) rename src/{context-awareness => 3-context-awareness}/napi/binding.gyp (100%) rename src/{context-awareness => 3-context-awareness}/napi/index.js (100%) rename src/{context-awareness => 3-context-awareness}/napi/multiple_load.c (100%) rename src/{context-awareness => 3-context-awareness}/napi/package.json (100%) rename src/{context-awareness => 3-context-awareness}/node_10/binding.gyp (100%) rename src/{context-awareness => 3-context-awareness}/node_10/index.js (100%) rename src/{context-awareness => 3-context-awareness}/node_10/multiple_load.cc (100%) rename src/{context-awareness => 3-context-awareness}/node_10/package.json (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/binding.gyp (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/index.js (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/package.json (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/src/binding.cc (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/src/native-addon.cc (100%) rename src/{references-and-handle-scope => 4-references-and-handle-scope}/function-reference-demo/node-addon-api/src/native-addon.h (100%) rename src/{async-work => 5-async-work}/async-iterator/node-addon-api/CMakeLists.txt (100%) rename src/{async-work => 5-async-work}/async-iterator/node-addon-api/example.cc (100%) rename src/{async-work => 5-async-work}/async-iterator/node-addon-api/index.js (100%) rename src/{async-work => 5-async-work}/async-iterator/node-addon-api/package.json (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/README.md (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/addon.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/addon.js (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/async.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/async.h (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/binding.gyp (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/package.json (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/pi_est.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/pi_est.h (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/sync.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/nan/sync.h (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/README.md (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/addon.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/addon.js (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/async.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/async.h (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/binding.gyp (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/package.json (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/pi_est.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/pi_est.h (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/sync.cc (100%) rename src/{async-work => 5-async-work}/async_pi_estimate/node-addon-api/sync.h (100%) rename src/{async-work => 5-async-work}/async_work_promise/napi/binding.c (100%) rename src/{async-work => 5-async-work}/async_work_promise/napi/binding.gyp (100%) rename src/{async-work => 5-async-work}/async_work_promise/napi/index.js (100%) rename src/{async-work => 5-async-work}/async_work_promise/napi/package.json (100%) rename src/{async-work => 5-async-work}/async_work_promise/node-addon-api/addon.cc (100%) rename src/{async-work => 5-async-work}/async_work_promise/node-addon-api/binding.gyp (100%) rename src/{async-work => 5-async-work}/async_work_promise/node-addon-api/index.js (100%) rename src/{async-work => 5-async-work}/async_work_promise/node-addon-api/package.json (100%) rename src/{async-work => 5-async-work}/async_work_promise/node-addon-api/worker.h (100%) rename src/{async-work => 5-async-work}/async_work_thread_safe_function/napi/binding.c (100%) rename src/{async-work => 5-async-work}/async_work_thread_safe_function/napi/binding.gyp (100%) rename src/{async-work => 5-async-work}/async_work_thread_safe_function/napi/index.js (100%) rename src/{async-work => 5-async-work}/async_work_thread_safe_function/napi/package.json (100%) rename src/{async-work => 5-async-work}/call-js-from-async-worker-execute/node-addon-api/binding.gyp (100%) rename src/{async-work => 5-async-work}/call-js-from-async-worker-execute/node-addon-api/index.js (100%) rename src/{async-work => 5-async-work}/call-js-from-async-worker-execute/node-addon-api/package.json (100%) rename src/{async-work => 5-async-work}/call-js-from-async-worker-execute/node-addon-api/src/binding.cc (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/README.md (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/binding.gyp (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/package.json (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h (100%) rename src/{async-work => 5-async-work}/napi-asyncworker-example/node-addon-api/test/Test.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/promise-callback-demo/node-addon-api/README.md (100%) rename src/{threadsafe-function => 6-threadsafe-function}/promise-callback-demo/node-addon-api/binding.gyp (100%) rename src/{threadsafe-function => 6-threadsafe-function}/promise-callback-demo/node-addon-api/package.json (100%) rename src/{threadsafe-function => 6-threadsafe-function}/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc (100%) rename src/{threadsafe-function => 6-threadsafe-function}/promise-callback-demo/node-addon-api/test/index.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_counting/node-addon-api/addon.cc (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_counting/node-addon-api/addon.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_counting/node-addon-api/binding.gyp (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_counting/node-addon-api/package.json (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_round_trip/napi/binding.gyp (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_round_trip/napi/index.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_round_trip/napi/package.json (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_round_trip/napi/round_trip.c (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/package.json (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc (100%) rename src/{threadsafe-function => 6-threadsafe-function}/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/threadsafe-async-iterator/node-addon-api/CMakeLists.txt (100%) rename src/{threadsafe-function => 6-threadsafe-function}/threadsafe-async-iterator/node-addon-api/example.cc (100%) rename src/{threadsafe-function => 6-threadsafe-function}/threadsafe-async-iterator/node-addon-api/index.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/threadsafe-async-iterator/node-addon-api/package.json (100%) rename src/{threadsafe-function => 6-threadsafe-function}/typed_threadsafe_function/node-addon-api/CMakeLists.txt (100%) rename src/{threadsafe-function => 6-threadsafe-function}/typed_threadsafe_function/node-addon-api/clock.cc (100%) rename src/{threadsafe-function => 6-threadsafe-function}/typed_threadsafe_function/node-addon-api/index.js (100%) rename src/{threadsafe-function => 6-threadsafe-function}/typed_threadsafe_function/node-addon-api/package.json (100%) rename src/{events => 7-events}/emit_event_from_cpp/node-addon-api/binding.gyp (100%) rename src/{events => 7-events}/emit_event_from_cpp/node-addon-api/index.js (100%) rename src/{events => 7-events}/emit_event_from_cpp/node-addon-api/package.json (100%) rename src/{events => 7-events}/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/binding.gyp (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/index.js (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/package.json (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/src/binding.cc (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc (100%) rename src/{events => 7-events}/inherits_from_event_emitter/node-addon-api/src/native-emitter.h (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/CMakeLists.txt (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/README.md (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/cPart.c (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/cPart.h (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/cppPart.cpp (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/index.ts (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/jsPart.js (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/napiPart.cpp (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/package.json (100%) rename src/{tooling => 8-tooling}/typescript_with_addon/node-addon-api/tsconfig.json (100%) diff --git a/src/general/1_hello_world/README.md b/src/1-getting-started/1_hello_world/README.md similarity index 100% rename from src/general/1_hello_world/README.md rename to src/1-getting-started/1_hello_world/README.md diff --git a/src/general/1_hello_world/nan/binding.gyp b/src/1-getting-started/1_hello_world/nan/binding.gyp similarity index 100% rename from src/general/1_hello_world/nan/binding.gyp rename to src/1-getting-started/1_hello_world/nan/binding.gyp diff --git a/src/general/1_hello_world/nan/hello.cc b/src/1-getting-started/1_hello_world/nan/hello.cc similarity index 100% rename from src/general/1_hello_world/nan/hello.cc rename to src/1-getting-started/1_hello_world/nan/hello.cc diff --git a/src/general/1_hello_world/nan/hello.js b/src/1-getting-started/1_hello_world/nan/hello.js similarity index 100% rename from src/general/1_hello_world/nan/hello.js rename to src/1-getting-started/1_hello_world/nan/hello.js diff --git a/src/general/1_hello_world/nan/package.json b/src/1-getting-started/1_hello_world/nan/package.json similarity index 100% rename from src/general/1_hello_world/nan/package.json rename to src/1-getting-started/1_hello_world/nan/package.json diff --git a/src/general/1_hello_world/napi/binding.gyp b/src/1-getting-started/1_hello_world/napi/binding.gyp similarity index 100% rename from src/general/1_hello_world/napi/binding.gyp rename to src/1-getting-started/1_hello_world/napi/binding.gyp diff --git a/src/general/1_hello_world/napi/hello.c b/src/1-getting-started/1_hello_world/napi/hello.c similarity index 100% rename from src/general/1_hello_world/napi/hello.c rename to src/1-getting-started/1_hello_world/napi/hello.c diff --git a/src/general/1_hello_world/napi/hello.js b/src/1-getting-started/1_hello_world/napi/hello.js similarity index 100% rename from src/general/1_hello_world/napi/hello.js rename to src/1-getting-started/1_hello_world/napi/hello.js diff --git a/src/general/1_hello_world/napi/package.json b/src/1-getting-started/1_hello_world/napi/package.json similarity index 100% rename from src/general/1_hello_world/napi/package.json rename to src/1-getting-started/1_hello_world/napi/package.json diff --git a/src/general/1_hello_world/node-addon-api-addon-class/binding.gyp b/src/1-getting-started/1_hello_world/node-addon-api-addon-class/binding.gyp similarity index 100% rename from src/general/1_hello_world/node-addon-api-addon-class/binding.gyp rename to src/1-getting-started/1_hello_world/node-addon-api-addon-class/binding.gyp diff --git a/src/general/1_hello_world/node-addon-api-addon-class/hello.cc b/src/1-getting-started/1_hello_world/node-addon-api-addon-class/hello.cc similarity index 100% rename from src/general/1_hello_world/node-addon-api-addon-class/hello.cc rename to src/1-getting-started/1_hello_world/node-addon-api-addon-class/hello.cc diff --git a/src/general/1_hello_world/node-addon-api-addon-class/hello.js b/src/1-getting-started/1_hello_world/node-addon-api-addon-class/hello.js similarity index 100% rename from src/general/1_hello_world/node-addon-api-addon-class/hello.js rename to src/1-getting-started/1_hello_world/node-addon-api-addon-class/hello.js diff --git a/src/general/1_hello_world/node-addon-api-addon-class/package.json b/src/1-getting-started/1_hello_world/node-addon-api-addon-class/package.json similarity index 100% rename from src/general/1_hello_world/node-addon-api-addon-class/package.json rename to src/1-getting-started/1_hello_world/node-addon-api-addon-class/package.json diff --git a/src/general/1_hello_world/node-addon-api/binding.gyp b/src/1-getting-started/1_hello_world/node-addon-api/binding.gyp similarity index 100% rename from src/general/1_hello_world/node-addon-api/binding.gyp rename to src/1-getting-started/1_hello_world/node-addon-api/binding.gyp diff --git a/src/general/1_hello_world/node-addon-api/hello.cc b/src/1-getting-started/1_hello_world/node-addon-api/hello.cc similarity index 100% rename from src/general/1_hello_world/node-addon-api/hello.cc rename to src/1-getting-started/1_hello_world/node-addon-api/hello.cc diff --git a/src/general/1_hello_world/node-addon-api/hello.js b/src/1-getting-started/1_hello_world/node-addon-api/hello.js similarity index 100% rename from src/general/1_hello_world/node-addon-api/hello.js rename to src/1-getting-started/1_hello_world/node-addon-api/hello.js diff --git a/src/general/1_hello_world/node-addon-api/package.json b/src/1-getting-started/1_hello_world/node-addon-api/package.json similarity index 100% rename from src/general/1_hello_world/node-addon-api/package.json rename to src/1-getting-started/1_hello_world/node-addon-api/package.json diff --git a/src/general/2_function_arguments/README.md b/src/1-getting-started/2_function_arguments/README.md similarity index 100% rename from src/general/2_function_arguments/README.md rename to src/1-getting-started/2_function_arguments/README.md diff --git a/src/general/2_function_arguments/nan/addon.cc b/src/1-getting-started/2_function_arguments/nan/addon.cc similarity index 100% rename from src/general/2_function_arguments/nan/addon.cc rename to src/1-getting-started/2_function_arguments/nan/addon.cc diff --git a/src/general/2_function_arguments/nan/addon.js b/src/1-getting-started/2_function_arguments/nan/addon.js similarity index 100% rename from src/general/2_function_arguments/nan/addon.js rename to src/1-getting-started/2_function_arguments/nan/addon.js diff --git a/src/general/2_function_arguments/nan/binding.gyp b/src/1-getting-started/2_function_arguments/nan/binding.gyp similarity index 100% rename from src/general/2_function_arguments/nan/binding.gyp rename to src/1-getting-started/2_function_arguments/nan/binding.gyp diff --git a/src/general/2_function_arguments/nan/package.json b/src/1-getting-started/2_function_arguments/nan/package.json similarity index 100% rename from src/general/2_function_arguments/nan/package.json rename to src/1-getting-started/2_function_arguments/nan/package.json diff --git a/src/general/2_function_arguments/napi/addon.c b/src/1-getting-started/2_function_arguments/napi/addon.c similarity index 100% rename from src/general/2_function_arguments/napi/addon.c rename to src/1-getting-started/2_function_arguments/napi/addon.c diff --git a/src/general/2_function_arguments/napi/addon.js b/src/1-getting-started/2_function_arguments/napi/addon.js similarity index 100% rename from src/general/2_function_arguments/napi/addon.js rename to src/1-getting-started/2_function_arguments/napi/addon.js diff --git a/src/general/2_function_arguments/napi/binding.gyp b/src/1-getting-started/2_function_arguments/napi/binding.gyp similarity index 100% rename from src/general/2_function_arguments/napi/binding.gyp rename to src/1-getting-started/2_function_arguments/napi/binding.gyp diff --git a/src/general/2_function_arguments/napi/package.json b/src/1-getting-started/2_function_arguments/napi/package.json similarity index 100% rename from src/general/2_function_arguments/napi/package.json rename to src/1-getting-started/2_function_arguments/napi/package.json diff --git a/src/general/2_function_arguments/node-addon-api/addon.cc b/src/1-getting-started/2_function_arguments/node-addon-api/addon.cc similarity index 100% rename from src/general/2_function_arguments/node-addon-api/addon.cc rename to src/1-getting-started/2_function_arguments/node-addon-api/addon.cc diff --git a/src/general/2_function_arguments/node-addon-api/addon.js b/src/1-getting-started/2_function_arguments/node-addon-api/addon.js similarity index 100% rename from src/general/2_function_arguments/node-addon-api/addon.js rename to src/1-getting-started/2_function_arguments/node-addon-api/addon.js diff --git a/src/general/2_function_arguments/node-addon-api/binding.gyp b/src/1-getting-started/2_function_arguments/node-addon-api/binding.gyp similarity index 100% rename from src/general/2_function_arguments/node-addon-api/binding.gyp rename to src/1-getting-started/2_function_arguments/node-addon-api/binding.gyp diff --git a/src/general/2_function_arguments/node-addon-api/package.json b/src/1-getting-started/2_function_arguments/node-addon-api/package.json similarity index 100% rename from src/general/2_function_arguments/node-addon-api/package.json rename to src/1-getting-started/2_function_arguments/node-addon-api/package.json diff --git a/src/general/3_callbacks/nan/addon.cc b/src/1-getting-started/3_callbacks/nan/addon.cc similarity index 100% rename from src/general/3_callbacks/nan/addon.cc rename to src/1-getting-started/3_callbacks/nan/addon.cc diff --git a/src/general/3_callbacks/nan/addon.js b/src/1-getting-started/3_callbacks/nan/addon.js similarity index 100% rename from src/general/3_callbacks/nan/addon.js rename to src/1-getting-started/3_callbacks/nan/addon.js diff --git a/src/general/3_callbacks/nan/binding.gyp b/src/1-getting-started/3_callbacks/nan/binding.gyp similarity index 100% rename from src/general/3_callbacks/nan/binding.gyp rename to src/1-getting-started/3_callbacks/nan/binding.gyp diff --git a/src/general/3_callbacks/nan/package.json b/src/1-getting-started/3_callbacks/nan/package.json similarity index 100% rename from src/general/3_callbacks/nan/package.json rename to src/1-getting-started/3_callbacks/nan/package.json diff --git a/src/general/3_callbacks/napi/addon.c b/src/1-getting-started/3_callbacks/napi/addon.c similarity index 100% rename from src/general/3_callbacks/napi/addon.c rename to src/1-getting-started/3_callbacks/napi/addon.c diff --git a/src/general/3_callbacks/napi/addon.js b/src/1-getting-started/3_callbacks/napi/addon.js similarity index 100% rename from src/general/3_callbacks/napi/addon.js rename to src/1-getting-started/3_callbacks/napi/addon.js diff --git a/src/general/3_callbacks/napi/binding.gyp b/src/1-getting-started/3_callbacks/napi/binding.gyp similarity index 100% rename from src/general/3_callbacks/napi/binding.gyp rename to src/1-getting-started/3_callbacks/napi/binding.gyp diff --git a/src/general/3_callbacks/napi/package.json b/src/1-getting-started/3_callbacks/napi/package.json similarity index 100% rename from src/general/3_callbacks/napi/package.json rename to src/1-getting-started/3_callbacks/napi/package.json diff --git a/src/general/3_callbacks/node-addon-api/addon.cc b/src/1-getting-started/3_callbacks/node-addon-api/addon.cc similarity index 100% rename from src/general/3_callbacks/node-addon-api/addon.cc rename to src/1-getting-started/3_callbacks/node-addon-api/addon.cc diff --git a/src/general/3_callbacks/node-addon-api/addon.js b/src/1-getting-started/3_callbacks/node-addon-api/addon.js similarity index 100% rename from src/general/3_callbacks/node-addon-api/addon.js rename to src/1-getting-started/3_callbacks/node-addon-api/addon.js diff --git a/src/general/3_callbacks/node-addon-api/binding.gyp b/src/1-getting-started/3_callbacks/node-addon-api/binding.gyp similarity index 100% rename from src/general/3_callbacks/node-addon-api/binding.gyp rename to src/1-getting-started/3_callbacks/node-addon-api/binding.gyp diff --git a/src/general/3_callbacks/node-addon-api/package.json b/src/1-getting-started/3_callbacks/node-addon-api/package.json similarity index 100% rename from src/general/3_callbacks/node-addon-api/package.json rename to src/1-getting-started/3_callbacks/node-addon-api/package.json diff --git a/src/general/4_object_factory/nan/addon.cc b/src/1-getting-started/4_object_factory/nan/addon.cc similarity index 100% rename from src/general/4_object_factory/nan/addon.cc rename to src/1-getting-started/4_object_factory/nan/addon.cc diff --git a/src/general/4_object_factory/nan/addon.js b/src/1-getting-started/4_object_factory/nan/addon.js similarity index 100% rename from src/general/4_object_factory/nan/addon.js rename to src/1-getting-started/4_object_factory/nan/addon.js diff --git a/src/general/4_object_factory/nan/binding.gyp b/src/1-getting-started/4_object_factory/nan/binding.gyp similarity index 100% rename from src/general/4_object_factory/nan/binding.gyp rename to src/1-getting-started/4_object_factory/nan/binding.gyp diff --git a/src/general/4_object_factory/nan/package.json b/src/1-getting-started/4_object_factory/nan/package.json similarity index 100% rename from src/general/4_object_factory/nan/package.json rename to src/1-getting-started/4_object_factory/nan/package.json diff --git a/src/general/4_object_factory/napi/addon.c b/src/1-getting-started/4_object_factory/napi/addon.c similarity index 100% rename from src/general/4_object_factory/napi/addon.c rename to src/1-getting-started/4_object_factory/napi/addon.c diff --git a/src/general/4_object_factory/napi/addon.js b/src/1-getting-started/4_object_factory/napi/addon.js similarity index 100% rename from src/general/4_object_factory/napi/addon.js rename to src/1-getting-started/4_object_factory/napi/addon.js diff --git a/src/general/4_object_factory/napi/binding.gyp b/src/1-getting-started/4_object_factory/napi/binding.gyp similarity index 100% rename from src/general/4_object_factory/napi/binding.gyp rename to src/1-getting-started/4_object_factory/napi/binding.gyp diff --git a/src/general/4_object_factory/napi/package.json b/src/1-getting-started/4_object_factory/napi/package.json similarity index 100% rename from src/general/4_object_factory/napi/package.json rename to src/1-getting-started/4_object_factory/napi/package.json diff --git a/src/general/4_object_factory/node-addon-api/addon.cc b/src/1-getting-started/4_object_factory/node-addon-api/addon.cc similarity index 100% rename from src/general/4_object_factory/node-addon-api/addon.cc rename to src/1-getting-started/4_object_factory/node-addon-api/addon.cc diff --git a/src/general/4_object_factory/node-addon-api/addon.js b/src/1-getting-started/4_object_factory/node-addon-api/addon.js similarity index 100% rename from src/general/4_object_factory/node-addon-api/addon.js rename to src/1-getting-started/4_object_factory/node-addon-api/addon.js diff --git a/src/general/4_object_factory/node-addon-api/binding.gyp b/src/1-getting-started/4_object_factory/node-addon-api/binding.gyp similarity index 100% rename from src/general/4_object_factory/node-addon-api/binding.gyp rename to src/1-getting-started/4_object_factory/node-addon-api/binding.gyp diff --git a/src/general/4_object_factory/node-addon-api/package.json b/src/1-getting-started/4_object_factory/node-addon-api/package.json similarity index 100% rename from src/general/4_object_factory/node-addon-api/package.json rename to src/1-getting-started/4_object_factory/node-addon-api/package.json diff --git a/src/general/5_function_factory/nan/addon.cc b/src/1-getting-started/5_function_factory/nan/addon.cc similarity index 100% rename from src/general/5_function_factory/nan/addon.cc rename to src/1-getting-started/5_function_factory/nan/addon.cc diff --git a/src/general/5_function_factory/nan/addon.js b/src/1-getting-started/5_function_factory/nan/addon.js similarity index 100% rename from src/general/5_function_factory/nan/addon.js rename to src/1-getting-started/5_function_factory/nan/addon.js diff --git a/src/general/5_function_factory/nan/binding.gyp b/src/1-getting-started/5_function_factory/nan/binding.gyp similarity index 100% rename from src/general/5_function_factory/nan/binding.gyp rename to src/1-getting-started/5_function_factory/nan/binding.gyp diff --git a/src/general/5_function_factory/nan/package.json b/src/1-getting-started/5_function_factory/nan/package.json similarity index 100% rename from src/general/5_function_factory/nan/package.json rename to src/1-getting-started/5_function_factory/nan/package.json diff --git a/src/general/5_function_factory/napi/addon.c b/src/1-getting-started/5_function_factory/napi/addon.c similarity index 100% rename from src/general/5_function_factory/napi/addon.c rename to src/1-getting-started/5_function_factory/napi/addon.c diff --git a/src/general/5_function_factory/napi/addon.js b/src/1-getting-started/5_function_factory/napi/addon.js similarity index 100% rename from src/general/5_function_factory/napi/addon.js rename to src/1-getting-started/5_function_factory/napi/addon.js diff --git a/src/general/5_function_factory/napi/binding.gyp b/src/1-getting-started/5_function_factory/napi/binding.gyp similarity index 100% rename from src/general/5_function_factory/napi/binding.gyp rename to src/1-getting-started/5_function_factory/napi/binding.gyp diff --git a/src/general/5_function_factory/napi/package.json b/src/1-getting-started/5_function_factory/napi/package.json similarity index 100% rename from src/general/5_function_factory/napi/package.json rename to src/1-getting-started/5_function_factory/napi/package.json diff --git a/src/general/5_function_factory/node-addon-api/addon.cc b/src/1-getting-started/5_function_factory/node-addon-api/addon.cc similarity index 100% rename from src/general/5_function_factory/node-addon-api/addon.cc rename to src/1-getting-started/5_function_factory/node-addon-api/addon.cc diff --git a/src/general/5_function_factory/node-addon-api/addon.js b/src/1-getting-started/5_function_factory/node-addon-api/addon.js similarity index 100% rename from src/general/5_function_factory/node-addon-api/addon.js rename to src/1-getting-started/5_function_factory/node-addon-api/addon.js diff --git a/src/general/5_function_factory/node-addon-api/binding.gyp b/src/1-getting-started/5_function_factory/node-addon-api/binding.gyp similarity index 100% rename from src/general/5_function_factory/node-addon-api/binding.gyp rename to src/1-getting-started/5_function_factory/node-addon-api/binding.gyp diff --git a/src/general/5_function_factory/node-addon-api/package.json b/src/1-getting-started/5_function_factory/node-addon-api/package.json similarity index 100% rename from src/general/5_function_factory/node-addon-api/package.json rename to src/1-getting-started/5_function_factory/node-addon-api/package.json diff --git a/src/general/6_object_wrap/nan/addon.cc b/src/1-getting-started/6_object_wrap/nan/addon.cc similarity index 100% rename from src/general/6_object_wrap/nan/addon.cc rename to src/1-getting-started/6_object_wrap/nan/addon.cc diff --git a/src/general/6_object_wrap/nan/addon.js b/src/1-getting-started/6_object_wrap/nan/addon.js similarity index 100% rename from src/general/6_object_wrap/nan/addon.js rename to src/1-getting-started/6_object_wrap/nan/addon.js diff --git a/src/general/6_object_wrap/nan/binding.gyp b/src/1-getting-started/6_object_wrap/nan/binding.gyp similarity index 100% rename from src/general/6_object_wrap/nan/binding.gyp rename to src/1-getting-started/6_object_wrap/nan/binding.gyp diff --git a/src/general/6_object_wrap/nan/myobject.cc b/src/1-getting-started/6_object_wrap/nan/myobject.cc similarity index 100% rename from src/general/6_object_wrap/nan/myobject.cc rename to src/1-getting-started/6_object_wrap/nan/myobject.cc diff --git a/src/general/6_object_wrap/nan/myobject.h b/src/1-getting-started/6_object_wrap/nan/myobject.h similarity index 100% rename from src/general/6_object_wrap/nan/myobject.h rename to src/1-getting-started/6_object_wrap/nan/myobject.h diff --git a/src/general/6_object_wrap/nan/package.json b/src/1-getting-started/6_object_wrap/nan/package.json similarity index 100% rename from src/general/6_object_wrap/nan/package.json rename to src/1-getting-started/6_object_wrap/nan/package.json diff --git a/src/general/6_object_wrap/napi/addon.cc b/src/1-getting-started/6_object_wrap/napi/addon.cc similarity index 100% rename from src/general/6_object_wrap/napi/addon.cc rename to src/1-getting-started/6_object_wrap/napi/addon.cc diff --git a/src/general/6_object_wrap/napi/addon.js b/src/1-getting-started/6_object_wrap/napi/addon.js similarity index 100% rename from src/general/6_object_wrap/napi/addon.js rename to src/1-getting-started/6_object_wrap/napi/addon.js diff --git a/src/general/6_object_wrap/napi/binding.gyp b/src/1-getting-started/6_object_wrap/napi/binding.gyp similarity index 100% rename from src/general/6_object_wrap/napi/binding.gyp rename to src/1-getting-started/6_object_wrap/napi/binding.gyp diff --git a/src/general/6_object_wrap/napi/myobject.cc b/src/1-getting-started/6_object_wrap/napi/myobject.cc similarity index 100% rename from src/general/6_object_wrap/napi/myobject.cc rename to src/1-getting-started/6_object_wrap/napi/myobject.cc diff --git a/src/general/6_object_wrap/napi/myobject.h b/src/1-getting-started/6_object_wrap/napi/myobject.h similarity index 100% rename from src/general/6_object_wrap/napi/myobject.h rename to src/1-getting-started/6_object_wrap/napi/myobject.h diff --git a/src/general/6_object_wrap/napi/package.json b/src/1-getting-started/6_object_wrap/napi/package.json similarity index 100% rename from src/general/6_object_wrap/napi/package.json rename to src/1-getting-started/6_object_wrap/napi/package.json diff --git a/src/general/6_object_wrap/node-addon-api/addon.cc b/src/1-getting-started/6_object_wrap/node-addon-api/addon.cc similarity index 100% rename from src/general/6_object_wrap/node-addon-api/addon.cc rename to src/1-getting-started/6_object_wrap/node-addon-api/addon.cc diff --git a/src/general/6_object_wrap/node-addon-api/addon.js b/src/1-getting-started/6_object_wrap/node-addon-api/addon.js similarity index 100% rename from src/general/6_object_wrap/node-addon-api/addon.js rename to src/1-getting-started/6_object_wrap/node-addon-api/addon.js diff --git a/src/general/6_object_wrap/node-addon-api/binding.gyp b/src/1-getting-started/6_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from src/general/6_object_wrap/node-addon-api/binding.gyp rename to src/1-getting-started/6_object_wrap/node-addon-api/binding.gyp diff --git a/src/general/6_object_wrap/node-addon-api/myobject.cc b/src/1-getting-started/6_object_wrap/node-addon-api/myobject.cc similarity index 100% rename from src/general/6_object_wrap/node-addon-api/myobject.cc rename to src/1-getting-started/6_object_wrap/node-addon-api/myobject.cc diff --git a/src/general/6_object_wrap/node-addon-api/myobject.h b/src/1-getting-started/6_object_wrap/node-addon-api/myobject.h similarity index 100% rename from src/general/6_object_wrap/node-addon-api/myobject.h rename to src/1-getting-started/6_object_wrap/node-addon-api/myobject.h diff --git a/src/general/6_object_wrap/node-addon-api/package.json b/src/1-getting-started/6_object_wrap/node-addon-api/package.json similarity index 100% rename from src/general/6_object_wrap/node-addon-api/package.json rename to src/1-getting-started/6_object_wrap/node-addon-api/package.json diff --git a/src/general/7_factory_wrap/nan/addon.cc b/src/1-getting-started/7_factory_wrap/nan/addon.cc similarity index 100% rename from src/general/7_factory_wrap/nan/addon.cc rename to src/1-getting-started/7_factory_wrap/nan/addon.cc diff --git a/src/general/7_factory_wrap/nan/addon.js b/src/1-getting-started/7_factory_wrap/nan/addon.js similarity index 100% rename from src/general/7_factory_wrap/nan/addon.js rename to src/1-getting-started/7_factory_wrap/nan/addon.js diff --git a/src/general/7_factory_wrap/nan/binding.gyp b/src/1-getting-started/7_factory_wrap/nan/binding.gyp similarity index 100% rename from src/general/7_factory_wrap/nan/binding.gyp rename to src/1-getting-started/7_factory_wrap/nan/binding.gyp diff --git a/src/general/7_factory_wrap/nan/myobject.cc b/src/1-getting-started/7_factory_wrap/nan/myobject.cc similarity index 100% rename from src/general/7_factory_wrap/nan/myobject.cc rename to src/1-getting-started/7_factory_wrap/nan/myobject.cc diff --git a/src/general/7_factory_wrap/nan/myobject.h b/src/1-getting-started/7_factory_wrap/nan/myobject.h similarity index 100% rename from src/general/7_factory_wrap/nan/myobject.h rename to src/1-getting-started/7_factory_wrap/nan/myobject.h diff --git a/src/general/7_factory_wrap/nan/package.json b/src/1-getting-started/7_factory_wrap/nan/package.json similarity index 100% rename from src/general/7_factory_wrap/nan/package.json rename to src/1-getting-started/7_factory_wrap/nan/package.json diff --git a/src/general/7_factory_wrap/napi/addon.cc b/src/1-getting-started/7_factory_wrap/napi/addon.cc similarity index 100% rename from src/general/7_factory_wrap/napi/addon.cc rename to src/1-getting-started/7_factory_wrap/napi/addon.cc diff --git a/src/general/7_factory_wrap/napi/addon.js b/src/1-getting-started/7_factory_wrap/napi/addon.js similarity index 100% rename from src/general/7_factory_wrap/napi/addon.js rename to src/1-getting-started/7_factory_wrap/napi/addon.js diff --git a/src/general/7_factory_wrap/napi/binding.gyp b/src/1-getting-started/7_factory_wrap/napi/binding.gyp similarity index 100% rename from src/general/7_factory_wrap/napi/binding.gyp rename to src/1-getting-started/7_factory_wrap/napi/binding.gyp diff --git a/src/general/7_factory_wrap/napi/myobject.cc b/src/1-getting-started/7_factory_wrap/napi/myobject.cc similarity index 100% rename from src/general/7_factory_wrap/napi/myobject.cc rename to src/1-getting-started/7_factory_wrap/napi/myobject.cc diff --git a/src/general/7_factory_wrap/napi/myobject.h b/src/1-getting-started/7_factory_wrap/napi/myobject.h similarity index 100% rename from src/general/7_factory_wrap/napi/myobject.h rename to src/1-getting-started/7_factory_wrap/napi/myobject.h diff --git a/src/general/7_factory_wrap/napi/package.json b/src/1-getting-started/7_factory_wrap/napi/package.json similarity index 100% rename from src/general/7_factory_wrap/napi/package.json rename to src/1-getting-started/7_factory_wrap/napi/package.json diff --git a/src/general/7_factory_wrap/node-addon-api/addon.cc b/src/1-getting-started/7_factory_wrap/node-addon-api/addon.cc similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/addon.cc rename to src/1-getting-started/7_factory_wrap/node-addon-api/addon.cc diff --git a/src/general/7_factory_wrap/node-addon-api/addon.js b/src/1-getting-started/7_factory_wrap/node-addon-api/addon.js similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/addon.js rename to src/1-getting-started/7_factory_wrap/node-addon-api/addon.js diff --git a/src/general/7_factory_wrap/node-addon-api/binding.gyp b/src/1-getting-started/7_factory_wrap/node-addon-api/binding.gyp similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/binding.gyp rename to src/1-getting-started/7_factory_wrap/node-addon-api/binding.gyp diff --git a/src/general/7_factory_wrap/node-addon-api/myobject.cc b/src/1-getting-started/7_factory_wrap/node-addon-api/myobject.cc similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/myobject.cc rename to src/1-getting-started/7_factory_wrap/node-addon-api/myobject.cc diff --git a/src/general/7_factory_wrap/node-addon-api/myobject.h b/src/1-getting-started/7_factory_wrap/node-addon-api/myobject.h similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/myobject.h rename to src/1-getting-started/7_factory_wrap/node-addon-api/myobject.h diff --git a/src/general/7_factory_wrap/node-addon-api/package.json b/src/1-getting-started/7_factory_wrap/node-addon-api/package.json similarity index 100% rename from src/general/7_factory_wrap/node-addon-api/package.json rename to src/1-getting-started/7_factory_wrap/node-addon-api/package.json diff --git a/src/general/a-first-project/node-addon-api/README.md b/src/1-getting-started/a-first-project/node-addon-api/README.md similarity index 100% rename from src/general/a-first-project/node-addon-api/README.md rename to src/1-getting-started/a-first-project/node-addon-api/README.md diff --git a/src/general/a-first-project/node-addon-api/binding.gyp b/src/1-getting-started/a-first-project/node-addon-api/binding.gyp similarity index 100% rename from src/general/a-first-project/node-addon-api/binding.gyp rename to src/1-getting-started/a-first-project/node-addon-api/binding.gyp diff --git a/src/general/a-first-project/node-addon-api/lib/binding.js b/src/1-getting-started/a-first-project/node-addon-api/lib/binding.js similarity index 100% rename from src/general/a-first-project/node-addon-api/lib/binding.js rename to src/1-getting-started/a-first-project/node-addon-api/lib/binding.js diff --git a/src/general/a-first-project/node-addon-api/package.json b/src/1-getting-started/a-first-project/node-addon-api/package.json similarity index 100% rename from src/general/a-first-project/node-addon-api/package.json rename to src/1-getting-started/a-first-project/node-addon-api/package.json diff --git a/src/general/a-first-project/node-addon-api/src/hello_world.cc b/src/1-getting-started/a-first-project/node-addon-api/src/hello_world.cc similarity index 100% rename from src/general/a-first-project/node-addon-api/src/hello_world.cc rename to src/1-getting-started/a-first-project/node-addon-api/src/hello_world.cc diff --git a/src/general/a-first-project/node-addon-api/test/test_binding.js b/src/1-getting-started/a-first-project/node-addon-api/test/test_binding.js similarity index 100% rename from src/general/a-first-project/node-addon-api/test/test_binding.js rename to src/1-getting-started/a-first-project/node-addon-api/test/test_binding.js diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/addon.cc b/src/2-js-to-native-conversion/8_passing_wrapped/nan/addon.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/addon.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/addon.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/addon.js b/src/2-js-to-native-conversion/8_passing_wrapped/nan/addon.js similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/addon.js rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/addon.js diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp b/src/2-js-to-native-conversion/8_passing_wrapped/nan/binding.gyp similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/binding.gyp rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/binding.gyp diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc b/src/2-js-to-native-conversion/8_passing_wrapped/nan/myobject.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/myobject.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/myobject.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/myobject.h b/src/2-js-to-native-conversion/8_passing_wrapped/nan/myobject.h similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/myobject.h rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/myobject.h diff --git a/src/js-to-native-conversion/8_passing_wrapped/nan/package.json b/src/2-js-to-native-conversion/8_passing_wrapped/nan/package.json similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/nan/package.json rename to src/2-js-to-native-conversion/8_passing_wrapped/nan/package.json diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/addon.cc b/src/2-js-to-native-conversion/8_passing_wrapped/napi/addon.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/addon.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/addon.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/addon.js b/src/2-js-to-native-conversion/8_passing_wrapped/napi/addon.js similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/addon.js rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/addon.js diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp b/src/2-js-to-native-conversion/8_passing_wrapped/napi/binding.gyp similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/binding.gyp rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/binding.gyp diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc b/src/2-js-to-native-conversion/8_passing_wrapped/napi/myobject.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/myobject.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/myobject.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/myobject.h b/src/2-js-to-native-conversion/8_passing_wrapped/napi/myobject.h similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/myobject.h rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/myobject.h diff --git a/src/js-to-native-conversion/8_passing_wrapped/napi/package.json b/src/2-js-to-native-conversion/8_passing_wrapped/napi/package.json similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/napi/package.json rename to src/2-js-to-native-conversion/8_passing_wrapped/napi/package.json diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/addon.js diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/binding.gyp diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.cc diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/myobject.h diff --git a/src/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json b/src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json similarity index 100% rename from src/js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json rename to src/2-js-to-native-conversion/8_passing_wrapped/node-addon-api/package.json diff --git a/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc b/src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc similarity index 100% rename from src/js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc rename to src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/array_buffer_to_native.cc diff --git a/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp b/src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp similarity index 100% rename from src/js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp rename to src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/binding.gyp diff --git a/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js b/src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js similarity index 100% rename from src/js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js rename to src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/index.js diff --git a/src/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json b/src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json similarity index 100% rename from src/js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json rename to src/2-js-to-native-conversion/array_buffer_to_native/node-addon-api/package.json diff --git a/src/js-to-native-conversion/object-template-demo/README.md b/src/2-js-to-native-conversion/object-template-demo/README.md similarity index 100% rename from src/js-to-native-conversion/object-template-demo/README.md rename to src/2-js-to-native-conversion/object-template-demo/README.md diff --git a/src/js-to-native-conversion/object-template-demo/nan/binding.gyp b/src/2-js-to-native-conversion/object-template-demo/nan/binding.gyp similarity index 100% rename from src/js-to-native-conversion/object-template-demo/nan/binding.gyp rename to src/2-js-to-native-conversion/object-template-demo/nan/binding.gyp diff --git a/src/js-to-native-conversion/object-template-demo/nan/index.js b/src/2-js-to-native-conversion/object-template-demo/nan/index.js similarity index 100% rename from src/js-to-native-conversion/object-template-demo/nan/index.js rename to src/2-js-to-native-conversion/object-template-demo/nan/index.js diff --git a/src/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc b/src/2-js-to-native-conversion/object-template-demo/nan/object-template-demo.cc similarity index 100% rename from src/js-to-native-conversion/object-template-demo/nan/object-template-demo.cc rename to src/2-js-to-native-conversion/object-template-demo/nan/object-template-demo.cc diff --git a/src/js-to-native-conversion/object-template-demo/nan/package.json b/src/2-js-to-native-conversion/object-template-demo/nan/package.json similarity index 100% rename from src/js-to-native-conversion/object-template-demo/nan/package.json rename to src/2-js-to-native-conversion/object-template-demo/nan/package.json diff --git a/src/js-to-native-conversion/object-template-demo/napi/binding.gyp b/src/2-js-to-native-conversion/object-template-demo/napi/binding.gyp similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/binding.gyp rename to src/2-js-to-native-conversion/object-template-demo/napi/binding.gyp diff --git a/src/js-to-native-conversion/object-template-demo/napi/index.js b/src/2-js-to-native-conversion/object-template-demo/napi/index.js similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/index.js rename to src/2-js-to-native-conversion/object-template-demo/napi/index.js diff --git a/src/js-to-native-conversion/object-template-demo/napi/node-api-common.h b/src/2-js-to-native-conversion/object-template-demo/napi/node-api-common.h similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/node-api-common.h rename to src/2-js-to-native-conversion/object-template-demo/napi/node-api-common.h diff --git a/src/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc b/src/2-js-to-native-conversion/object-template-demo/napi/object-template-demo.cc similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/object-template-demo.cc rename to src/2-js-to-native-conversion/object-template-demo/napi/object-template-demo.cc diff --git a/src/js-to-native-conversion/object-template-demo/napi/package.json b/src/2-js-to-native-conversion/object-template-demo/napi/package.json similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/package.json rename to src/2-js-to-native-conversion/object-template-demo/napi/package.json diff --git a/src/js-to-native-conversion/object-template-demo/napi/proxy-template.cc b/src/2-js-to-native-conversion/object-template-demo/napi/proxy-template.cc similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/proxy-template.cc rename to src/2-js-to-native-conversion/object-template-demo/napi/proxy-template.cc diff --git a/src/js-to-native-conversion/object-template-demo/napi/proxy-template.h b/src/2-js-to-native-conversion/object-template-demo/napi/proxy-template.h similarity index 100% rename from src/js-to-native-conversion/object-template-demo/napi/proxy-template.h rename to src/2-js-to-native-conversion/object-template-demo/napi/proxy-template.h diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/README.md similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/README.md rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/README.md diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/binding.gyp diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/lib/binding.js diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/package.json similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/package.json rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/package.json diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.cc diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/src/object_wrap_demo.h diff --git a/src/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js b/src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js similarity index 100% rename from src/js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js rename to src/2-js-to-native-conversion/object-wrap-demo/node-addon-api/test/test_binding.js diff --git a/src/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp b/src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp similarity index 100% rename from src/js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp rename to src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/binding.gyp diff --git a/src/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js b/src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/index.js similarity index 100% rename from src/js-to-native-conversion/typed_array_to_native/node-addon-api/index.js rename to src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/index.js diff --git a/src/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json b/src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/package.json similarity index 100% rename from src/js-to-native-conversion/typed_array_to_native/node-addon-api/package.json rename to src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/package.json diff --git a/src/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc b/src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc similarity index 100% rename from src/js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc rename to src/2-js-to-native-conversion/typed_array_to_native/node-addon-api/typed_array_to_native.cc diff --git a/src/context-awareness/napi/binding.gyp b/src/3-context-awareness/napi/binding.gyp similarity index 100% rename from src/context-awareness/napi/binding.gyp rename to src/3-context-awareness/napi/binding.gyp diff --git a/src/context-awareness/napi/index.js b/src/3-context-awareness/napi/index.js similarity index 100% rename from src/context-awareness/napi/index.js rename to src/3-context-awareness/napi/index.js diff --git a/src/context-awareness/napi/multiple_load.c b/src/3-context-awareness/napi/multiple_load.c similarity index 100% rename from src/context-awareness/napi/multiple_load.c rename to src/3-context-awareness/napi/multiple_load.c diff --git a/src/context-awareness/napi/package.json b/src/3-context-awareness/napi/package.json similarity index 100% rename from src/context-awareness/napi/package.json rename to src/3-context-awareness/napi/package.json diff --git a/src/context-awareness/node_10/binding.gyp b/src/3-context-awareness/node_10/binding.gyp similarity index 100% rename from src/context-awareness/node_10/binding.gyp rename to src/3-context-awareness/node_10/binding.gyp diff --git a/src/context-awareness/node_10/index.js b/src/3-context-awareness/node_10/index.js similarity index 100% rename from src/context-awareness/node_10/index.js rename to src/3-context-awareness/node_10/index.js diff --git a/src/context-awareness/node_10/multiple_load.cc b/src/3-context-awareness/node_10/multiple_load.cc similarity index 100% rename from src/context-awareness/node_10/multiple_load.cc rename to src/3-context-awareness/node_10/multiple_load.cc diff --git a/src/context-awareness/node_10/package.json b/src/3-context-awareness/node_10/package.json similarity index 100% rename from src/context-awareness/node_10/package.json rename to src/3-context-awareness/node_10/package.json diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/binding.gyp diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/index.js b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/index.js similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/index.js rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/index.js diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/package.json b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/package.json similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/package.json rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/package.json diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/binding.cc diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.cc diff --git a/src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h b/src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h similarity index 100% rename from src/references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h rename to src/4-references-and-handle-scope/function-reference-demo/node-addon-api/src/native-addon.h diff --git a/src/async-work/async-iterator/node-addon-api/CMakeLists.txt b/src/5-async-work/async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from src/async-work/async-iterator/node-addon-api/CMakeLists.txt rename to src/5-async-work/async-iterator/node-addon-api/CMakeLists.txt diff --git a/src/async-work/async-iterator/node-addon-api/example.cc b/src/5-async-work/async-iterator/node-addon-api/example.cc similarity index 100% rename from src/async-work/async-iterator/node-addon-api/example.cc rename to src/5-async-work/async-iterator/node-addon-api/example.cc diff --git a/src/async-work/async-iterator/node-addon-api/index.js b/src/5-async-work/async-iterator/node-addon-api/index.js similarity index 100% rename from src/async-work/async-iterator/node-addon-api/index.js rename to src/5-async-work/async-iterator/node-addon-api/index.js diff --git a/src/async-work/async-iterator/node-addon-api/package.json b/src/5-async-work/async-iterator/node-addon-api/package.json similarity index 100% rename from src/async-work/async-iterator/node-addon-api/package.json rename to src/5-async-work/async-iterator/node-addon-api/package.json diff --git a/src/async-work/async_pi_estimate/nan/README.md b/src/5-async-work/async_pi_estimate/nan/README.md similarity index 100% rename from src/async-work/async_pi_estimate/nan/README.md rename to src/5-async-work/async_pi_estimate/nan/README.md diff --git a/src/async-work/async_pi_estimate/nan/addon.cc b/src/5-async-work/async_pi_estimate/nan/addon.cc similarity index 100% rename from src/async-work/async_pi_estimate/nan/addon.cc rename to src/5-async-work/async_pi_estimate/nan/addon.cc diff --git a/src/async-work/async_pi_estimate/nan/addon.js b/src/5-async-work/async_pi_estimate/nan/addon.js similarity index 100% rename from src/async-work/async_pi_estimate/nan/addon.js rename to src/5-async-work/async_pi_estimate/nan/addon.js diff --git a/src/async-work/async_pi_estimate/nan/async.cc b/src/5-async-work/async_pi_estimate/nan/async.cc similarity index 100% rename from src/async-work/async_pi_estimate/nan/async.cc rename to src/5-async-work/async_pi_estimate/nan/async.cc diff --git a/src/async-work/async_pi_estimate/nan/async.h b/src/5-async-work/async_pi_estimate/nan/async.h similarity index 100% rename from src/async-work/async_pi_estimate/nan/async.h rename to src/5-async-work/async_pi_estimate/nan/async.h diff --git a/src/async-work/async_pi_estimate/nan/binding.gyp b/src/5-async-work/async_pi_estimate/nan/binding.gyp similarity index 100% rename from src/async-work/async_pi_estimate/nan/binding.gyp rename to src/5-async-work/async_pi_estimate/nan/binding.gyp diff --git a/src/async-work/async_pi_estimate/nan/package.json b/src/5-async-work/async_pi_estimate/nan/package.json similarity index 100% rename from src/async-work/async_pi_estimate/nan/package.json rename to src/5-async-work/async_pi_estimate/nan/package.json diff --git a/src/async-work/async_pi_estimate/nan/pi_est.cc b/src/5-async-work/async_pi_estimate/nan/pi_est.cc similarity index 100% rename from src/async-work/async_pi_estimate/nan/pi_est.cc rename to src/5-async-work/async_pi_estimate/nan/pi_est.cc diff --git a/src/async-work/async_pi_estimate/nan/pi_est.h b/src/5-async-work/async_pi_estimate/nan/pi_est.h similarity index 100% rename from src/async-work/async_pi_estimate/nan/pi_est.h rename to src/5-async-work/async_pi_estimate/nan/pi_est.h diff --git a/src/async-work/async_pi_estimate/nan/sync.cc b/src/5-async-work/async_pi_estimate/nan/sync.cc similarity index 100% rename from src/async-work/async_pi_estimate/nan/sync.cc rename to src/5-async-work/async_pi_estimate/nan/sync.cc diff --git a/src/async-work/async_pi_estimate/nan/sync.h b/src/5-async-work/async_pi_estimate/nan/sync.h similarity index 100% rename from src/async-work/async_pi_estimate/nan/sync.h rename to src/5-async-work/async_pi_estimate/nan/sync.h diff --git a/src/async-work/async_pi_estimate/node-addon-api/README.md b/src/5-async-work/async_pi_estimate/node-addon-api/README.md similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/README.md rename to src/5-async-work/async_pi_estimate/node-addon-api/README.md diff --git a/src/async-work/async_pi_estimate/node-addon-api/addon.cc b/src/5-async-work/async_pi_estimate/node-addon-api/addon.cc similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/addon.cc rename to src/5-async-work/async_pi_estimate/node-addon-api/addon.cc diff --git a/src/async-work/async_pi_estimate/node-addon-api/addon.js b/src/5-async-work/async_pi_estimate/node-addon-api/addon.js similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/addon.js rename to src/5-async-work/async_pi_estimate/node-addon-api/addon.js diff --git a/src/async-work/async_pi_estimate/node-addon-api/async.cc b/src/5-async-work/async_pi_estimate/node-addon-api/async.cc similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/async.cc rename to src/5-async-work/async_pi_estimate/node-addon-api/async.cc diff --git a/src/async-work/async_pi_estimate/node-addon-api/async.h b/src/5-async-work/async_pi_estimate/node-addon-api/async.h similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/async.h rename to src/5-async-work/async_pi_estimate/node-addon-api/async.h diff --git a/src/async-work/async_pi_estimate/node-addon-api/binding.gyp b/src/5-async-work/async_pi_estimate/node-addon-api/binding.gyp similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/binding.gyp rename to src/5-async-work/async_pi_estimate/node-addon-api/binding.gyp diff --git a/src/async-work/async_pi_estimate/node-addon-api/package.json b/src/5-async-work/async_pi_estimate/node-addon-api/package.json similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/package.json rename to src/5-async-work/async_pi_estimate/node-addon-api/package.json diff --git a/src/async-work/async_pi_estimate/node-addon-api/pi_est.cc b/src/5-async-work/async_pi_estimate/node-addon-api/pi_est.cc similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/pi_est.cc rename to src/5-async-work/async_pi_estimate/node-addon-api/pi_est.cc diff --git a/src/async-work/async_pi_estimate/node-addon-api/pi_est.h b/src/5-async-work/async_pi_estimate/node-addon-api/pi_est.h similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/pi_est.h rename to src/5-async-work/async_pi_estimate/node-addon-api/pi_est.h diff --git a/src/async-work/async_pi_estimate/node-addon-api/sync.cc b/src/5-async-work/async_pi_estimate/node-addon-api/sync.cc similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/sync.cc rename to src/5-async-work/async_pi_estimate/node-addon-api/sync.cc diff --git a/src/async-work/async_pi_estimate/node-addon-api/sync.h b/src/5-async-work/async_pi_estimate/node-addon-api/sync.h similarity index 100% rename from src/async-work/async_pi_estimate/node-addon-api/sync.h rename to src/5-async-work/async_pi_estimate/node-addon-api/sync.h diff --git a/src/async-work/async_work_promise/napi/binding.c b/src/5-async-work/async_work_promise/napi/binding.c similarity index 100% rename from src/async-work/async_work_promise/napi/binding.c rename to src/5-async-work/async_work_promise/napi/binding.c diff --git a/src/async-work/async_work_promise/napi/binding.gyp b/src/5-async-work/async_work_promise/napi/binding.gyp similarity index 100% rename from src/async-work/async_work_promise/napi/binding.gyp rename to src/5-async-work/async_work_promise/napi/binding.gyp diff --git a/src/async-work/async_work_promise/napi/index.js b/src/5-async-work/async_work_promise/napi/index.js similarity index 100% rename from src/async-work/async_work_promise/napi/index.js rename to src/5-async-work/async_work_promise/napi/index.js diff --git a/src/async-work/async_work_promise/napi/package.json b/src/5-async-work/async_work_promise/napi/package.json similarity index 100% rename from src/async-work/async_work_promise/napi/package.json rename to src/5-async-work/async_work_promise/napi/package.json diff --git a/src/async-work/async_work_promise/node-addon-api/addon.cc b/src/5-async-work/async_work_promise/node-addon-api/addon.cc similarity index 100% rename from src/async-work/async_work_promise/node-addon-api/addon.cc rename to src/5-async-work/async_work_promise/node-addon-api/addon.cc diff --git a/src/async-work/async_work_promise/node-addon-api/binding.gyp b/src/5-async-work/async_work_promise/node-addon-api/binding.gyp similarity index 100% rename from src/async-work/async_work_promise/node-addon-api/binding.gyp rename to src/5-async-work/async_work_promise/node-addon-api/binding.gyp diff --git a/src/async-work/async_work_promise/node-addon-api/index.js b/src/5-async-work/async_work_promise/node-addon-api/index.js similarity index 100% rename from src/async-work/async_work_promise/node-addon-api/index.js rename to src/5-async-work/async_work_promise/node-addon-api/index.js diff --git a/src/async-work/async_work_promise/node-addon-api/package.json b/src/5-async-work/async_work_promise/node-addon-api/package.json similarity index 100% rename from src/async-work/async_work_promise/node-addon-api/package.json rename to src/5-async-work/async_work_promise/node-addon-api/package.json diff --git a/src/async-work/async_work_promise/node-addon-api/worker.h b/src/5-async-work/async_work_promise/node-addon-api/worker.h similarity index 100% rename from src/async-work/async_work_promise/node-addon-api/worker.h rename to src/5-async-work/async_work_promise/node-addon-api/worker.h diff --git a/src/async-work/async_work_thread_safe_function/napi/binding.c b/src/5-async-work/async_work_thread_safe_function/napi/binding.c similarity index 100% rename from src/async-work/async_work_thread_safe_function/napi/binding.c rename to src/5-async-work/async_work_thread_safe_function/napi/binding.c diff --git a/src/async-work/async_work_thread_safe_function/napi/binding.gyp b/src/5-async-work/async_work_thread_safe_function/napi/binding.gyp similarity index 100% rename from src/async-work/async_work_thread_safe_function/napi/binding.gyp rename to src/5-async-work/async_work_thread_safe_function/napi/binding.gyp diff --git a/src/async-work/async_work_thread_safe_function/napi/index.js b/src/5-async-work/async_work_thread_safe_function/napi/index.js similarity index 100% rename from src/async-work/async_work_thread_safe_function/napi/index.js rename to src/5-async-work/async_work_thread_safe_function/napi/index.js diff --git a/src/async-work/async_work_thread_safe_function/napi/package.json b/src/5-async-work/async_work_thread_safe_function/napi/package.json similarity index 100% rename from src/async-work/async_work_thread_safe_function/napi/package.json rename to src/5-async-work/async_work_thread_safe_function/napi/package.json diff --git a/src/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp b/src/5-async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp similarity index 100% rename from src/async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp rename to src/5-async-work/call-js-from-async-worker-execute/node-addon-api/binding.gyp diff --git a/src/async-work/call-js-from-async-worker-execute/node-addon-api/index.js b/src/5-async-work/call-js-from-async-worker-execute/node-addon-api/index.js similarity index 100% rename from src/async-work/call-js-from-async-worker-execute/node-addon-api/index.js rename to src/5-async-work/call-js-from-async-worker-execute/node-addon-api/index.js diff --git a/src/async-work/call-js-from-async-worker-execute/node-addon-api/package.json b/src/5-async-work/call-js-from-async-worker-execute/node-addon-api/package.json similarity index 100% rename from src/async-work/call-js-from-async-worker-execute/node-addon-api/package.json rename to src/5-async-work/call-js-from-async-worker-execute/node-addon-api/package.json diff --git a/src/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc b/src/5-async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc similarity index 100% rename from src/async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc rename to src/5-async-work/call-js-from-async-worker-execute/node-addon-api/src/binding.cc diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/README.md b/src/5-async-work/napi-asyncworker-example/node-addon-api/README.md similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/README.md rename to src/5-async-work/napi-asyncworker-example/node-addon-api/README.md diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/binding.gyp b/src/5-async-work/napi-asyncworker-example/node-addon-api/binding.gyp similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/binding.gyp rename to src/5-async-work/napi-asyncworker-example/node-addon-api/binding.gyp diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/package.json b/src/5-async-work/napi-asyncworker-example/node-addon-api/package.json similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/package.json rename to src/5-async-work/napi-asyncworker-example/node-addon-api/package.json diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc b/src/5-async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc rename to src/5-async-work/napi-asyncworker-example/node-addon-api/src/RunSimpleAsyncWorker.cc diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc b/src/5-async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc rename to src/5-async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.cc diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h b/src/5-async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h rename to src/5-async-work/napi-asyncworker-example/node-addon-api/src/SimpleAsyncWorker.h diff --git a/src/async-work/napi-asyncworker-example/node-addon-api/test/Test.js b/src/5-async-work/napi-asyncworker-example/node-addon-api/test/Test.js similarity index 100% rename from src/async-work/napi-asyncworker-example/node-addon-api/test/Test.js rename to src/5-async-work/napi-asyncworker-example/node-addon-api/test/Test.js diff --git a/src/threadsafe-function/promise-callback-demo/node-addon-api/README.md b/src/6-threadsafe-function/promise-callback-demo/node-addon-api/README.md similarity index 100% rename from src/threadsafe-function/promise-callback-demo/node-addon-api/README.md rename to src/6-threadsafe-function/promise-callback-demo/node-addon-api/README.md diff --git a/src/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp b/src/6-threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp similarity index 100% rename from src/threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp rename to src/6-threadsafe-function/promise-callback-demo/node-addon-api/binding.gyp diff --git a/src/threadsafe-function/promise-callback-demo/node-addon-api/package.json b/src/6-threadsafe-function/promise-callback-demo/node-addon-api/package.json similarity index 100% rename from src/threadsafe-function/promise-callback-demo/node-addon-api/package.json rename to src/6-threadsafe-function/promise-callback-demo/node-addon-api/package.json diff --git a/src/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc b/src/6-threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc similarity index 100% rename from src/threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc rename to src/6-threadsafe-function/promise-callback-demo/node-addon-api/src/promise_callback_demo.cc diff --git a/src/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js b/src/6-threadsafe-function/promise-callback-demo/node-addon-api/test/index.js similarity index 100% rename from src/threadsafe-function/promise-callback-demo/node-addon-api/test/index.js rename to src/6-threadsafe-function/promise-callback-demo/node-addon-api/test/index.js diff --git a/src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc b/src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc similarity index 100% rename from src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc rename to src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/addon.cc diff --git a/src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js b/src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js similarity index 100% rename from src/threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js rename to src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/addon.js diff --git a/src/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp b/src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp similarity index 100% rename from src/threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp rename to src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/binding.gyp diff --git a/src/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json b/src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/package.json similarity index 100% rename from src/threadsafe-function/thread_safe_function_counting/node-addon-api/package.json rename to src/6-threadsafe-function/thread_safe_function_counting/node-addon-api/package.json diff --git a/src/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp b/src/6-threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp similarity index 100% rename from src/threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp rename to src/6-threadsafe-function/thread_safe_function_round_trip/napi/binding.gyp diff --git a/src/threadsafe-function/thread_safe_function_round_trip/napi/index.js b/src/6-threadsafe-function/thread_safe_function_round_trip/napi/index.js similarity index 100% rename from src/threadsafe-function/thread_safe_function_round_trip/napi/index.js rename to src/6-threadsafe-function/thread_safe_function_round_trip/napi/index.js diff --git a/src/threadsafe-function/thread_safe_function_round_trip/napi/package.json b/src/6-threadsafe-function/thread_safe_function_round_trip/napi/package.json similarity index 100% rename from src/threadsafe-function/thread_safe_function_round_trip/napi/package.json rename to src/6-threadsafe-function/thread_safe_function_round_trip/napi/package.json diff --git a/src/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c b/src/6-threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c similarity index 100% rename from src/threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c rename to src/6-threadsafe-function/thread_safe_function_round_trip/napi/round_trip.c diff --git a/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp b/src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp similarity index 100% rename from src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp rename to src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/binding.gyp diff --git a/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json b/src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json similarity index 100% rename from src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json rename to src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/package.json diff --git a/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc b/src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc similarity index 100% rename from src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc rename to src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.cc diff --git a/src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js b/src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js similarity index 100% rename from src/threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js rename to src/6-threadsafe-function/thread_safe_function_with_object_wrap/node-addon-api/tsfn_object_wrap.js diff --git a/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt b/src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt similarity index 100% rename from src/threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt rename to src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/CMakeLists.txt diff --git a/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc b/src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc similarity index 100% rename from src/threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc rename to src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/example.cc diff --git a/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js b/src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js similarity index 100% rename from src/threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js rename to src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/index.js diff --git a/src/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json b/src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json similarity index 100% rename from src/threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json rename to src/6-threadsafe-function/threadsafe-async-iterator/node-addon-api/package.json diff --git a/src/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt b/src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt similarity index 100% rename from src/threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt rename to src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/CMakeLists.txt diff --git a/src/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc b/src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc similarity index 100% rename from src/threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc rename to src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/clock.cc diff --git a/src/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js b/src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/index.js similarity index 100% rename from src/threadsafe-function/typed_threadsafe_function/node-addon-api/index.js rename to src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/index.js diff --git a/src/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json b/src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/package.json similarity index 100% rename from src/threadsafe-function/typed_threadsafe_function/node-addon-api/package.json rename to src/6-threadsafe-function/typed_threadsafe_function/node-addon-api/package.json diff --git a/src/events/emit_event_from_cpp/node-addon-api/binding.gyp b/src/7-events/emit_event_from_cpp/node-addon-api/binding.gyp similarity index 100% rename from src/events/emit_event_from_cpp/node-addon-api/binding.gyp rename to src/7-events/emit_event_from_cpp/node-addon-api/binding.gyp diff --git a/src/events/emit_event_from_cpp/node-addon-api/index.js b/src/7-events/emit_event_from_cpp/node-addon-api/index.js similarity index 100% rename from src/events/emit_event_from_cpp/node-addon-api/index.js rename to src/7-events/emit_event_from_cpp/node-addon-api/index.js diff --git a/src/events/emit_event_from_cpp/node-addon-api/package.json b/src/7-events/emit_event_from_cpp/node-addon-api/package.json similarity index 100% rename from src/events/emit_event_from_cpp/node-addon-api/package.json rename to src/7-events/emit_event_from_cpp/node-addon-api/package.json diff --git a/src/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc b/src/7-events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc similarity index 100% rename from src/events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc rename to src/7-events/emit_event_from_cpp/node-addon-api/src/emit-from-cpp.cc diff --git a/src/events/inherits_from_event_emitter/node-addon-api/binding.gyp b/src/7-events/inherits_from_event_emitter/node-addon-api/binding.gyp similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/binding.gyp rename to src/7-events/inherits_from_event_emitter/node-addon-api/binding.gyp diff --git a/src/events/inherits_from_event_emitter/node-addon-api/index.js b/src/7-events/inherits_from_event_emitter/node-addon-api/index.js similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/index.js rename to src/7-events/inherits_from_event_emitter/node-addon-api/index.js diff --git a/src/events/inherits_from_event_emitter/node-addon-api/package.json b/src/7-events/inherits_from_event_emitter/node-addon-api/package.json similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/package.json rename to src/7-events/inherits_from_event_emitter/node-addon-api/package.json diff --git a/src/events/inherits_from_event_emitter/node-addon-api/src/binding.cc b/src/7-events/inherits_from_event_emitter/node-addon-api/src/binding.cc similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/src/binding.cc rename to src/7-events/inherits_from_event_emitter/node-addon-api/src/binding.cc diff --git a/src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc b/src/7-events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc rename to src/7-events/inherits_from_event_emitter/node-addon-api/src/native-emitter.cc diff --git a/src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h b/src/7-events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h similarity index 100% rename from src/events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h rename to src/7-events/inherits_from_event_emitter/node-addon-api/src/native-emitter.h diff --git a/src/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt b/src/8-tooling/typescript_with_addon/node-addon-api/CMakeLists.txt similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/CMakeLists.txt rename to src/8-tooling/typescript_with_addon/node-addon-api/CMakeLists.txt diff --git a/src/tooling/typescript_with_addon/node-addon-api/README.md b/src/8-tooling/typescript_with_addon/node-addon-api/README.md similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/README.md rename to src/8-tooling/typescript_with_addon/node-addon-api/README.md diff --git a/src/tooling/typescript_with_addon/node-addon-api/cPart.c b/src/8-tooling/typescript_with_addon/node-addon-api/cPart.c similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/cPart.c rename to src/8-tooling/typescript_with_addon/node-addon-api/cPart.c diff --git a/src/tooling/typescript_with_addon/node-addon-api/cPart.h b/src/8-tooling/typescript_with_addon/node-addon-api/cPart.h similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/cPart.h rename to src/8-tooling/typescript_with_addon/node-addon-api/cPart.h diff --git a/src/tooling/typescript_with_addon/node-addon-api/cppPart.cpp b/src/8-tooling/typescript_with_addon/node-addon-api/cppPart.cpp similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/cppPart.cpp rename to src/8-tooling/typescript_with_addon/node-addon-api/cppPart.cpp diff --git a/src/tooling/typescript_with_addon/node-addon-api/index.ts b/src/8-tooling/typescript_with_addon/node-addon-api/index.ts similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/index.ts rename to src/8-tooling/typescript_with_addon/node-addon-api/index.ts diff --git a/src/tooling/typescript_with_addon/node-addon-api/jsPart.js b/src/8-tooling/typescript_with_addon/node-addon-api/jsPart.js similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/jsPart.js rename to src/8-tooling/typescript_with_addon/node-addon-api/jsPart.js diff --git a/src/tooling/typescript_with_addon/node-addon-api/napiPart.cpp b/src/8-tooling/typescript_with_addon/node-addon-api/napiPart.cpp similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/napiPart.cpp rename to src/8-tooling/typescript_with_addon/node-addon-api/napiPart.cpp diff --git a/src/tooling/typescript_with_addon/node-addon-api/package.json b/src/8-tooling/typescript_with_addon/node-addon-api/package.json similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/package.json rename to src/8-tooling/typescript_with_addon/node-addon-api/package.json diff --git a/src/tooling/typescript_with_addon/node-addon-api/tsconfig.json b/src/8-tooling/typescript_with_addon/node-addon-api/tsconfig.json similarity index 100% rename from src/tooling/typescript_with_addon/node-addon-api/tsconfig.json rename to src/8-tooling/typescript_with_addon/node-addon-api/tsconfig.json From 01a25b9326a5b9ba53b9aadc5516db9c7680a579 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:18:45 +0200 Subject: [PATCH 11/17] refactor: simplify getAllExamples in test_all.js --- test_all.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/test_all.js b/test_all.js index 81d36e0e..2782a90d 100644 --- a/test_all.js +++ b/test_all.js @@ -4,23 +4,19 @@ const { execSync } = require("child_process"); const chalk = require("chalk"); const semver = require("semver"); -const excludeFolder = ["node_modules", "website"]; const examplesFolder = path.join(__dirname, "src"); function getAllExamples(pathToCheck) { const directoriesToTest = []; for (const fd of fs.readdirSync(pathToCheck)) { - if (excludeFolder.includes(fd)) { + const absPath = path.join(pathToCheck, fd); + if (fs.existsSync(path.join(absPath, "package.json"))) { + directoriesToTest.push(absPath); continue; } - const absPath = path.join(pathToCheck, fd); if (fs.statSync(absPath).isDirectory()) { directoriesToTest.push(...getAllExamples(absPath)); } - - if (fs.existsSync(path.join(absPath, "package.json"))) { - directoriesToTest.push(absPath); - } } return directoriesToTest; } From b017bb4d8c5b320d065f19c59f718d2c4bfb2a55 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:25:37 +0200 Subject: [PATCH 12/17] docs: add directory structure to README.md --- README.md | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 58a8031f..f8c939af 100644 --- a/README.md +++ b/README.md @@ -15,37 +15,41 @@ Implementations against unsupported versions of Node.js are provided for completeness and historical context. They are not maintained. The examples are primarily maintained for Node-API and node-addon-api and as outlined in -the Node.js [documentation](https://nodejs.org/dist/latest/docs/api/addons.html), +the Node.js [documentation](https://nodejs.org/dist/latest/docs/api/addons.html), unless there is a need for direct access to functionality which -is not exposed by Node-API, use Node-API. +is not exposed by Node-API, use Node-API. -The [Node-API Resource](http://nodejs.github.io/node-addon-examples/) offers an -excellent orientation and tips for developers just getting started with Node-API +The [Node-API Resource](http://nodejs.github.io/node-addon-examples/) offers an +excellent orientation and tips for developers just getting started with Node-API and `node-addon-api`. ## Usage The directory structure is as follows: +```sh +src/ +├── 1-getting-started/ +│ ├── example1/ +│ │ ├── nan/ +│ │ │ └── files for nan version of example1 +│ │ ├── node-addon-api +│ │ └── napi +│ └── example2/ +├── 2-js-to-native-conversion/ +├── 3-context-awareness/ +├── 4-references-and-handle-scope/ +├── 5-async-work/ +├── 6-threadsafe-function/ +├── 7-events/ +├── 8-tooling/ ``` - - | - +--- - | | - | +--- files... - +--- - . | - . +--- files... - . -``` - In each example's implementation subdirectory, run ```text -$ npm install -$ node ./ +npm install +node ./ ``` to see the example in action. - From fa6c1ecb3bd5dd613bac8bb4dbf15b825cb7fed0 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:27:13 +0200 Subject: [PATCH 13/17] docs: update directory structure to README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f8c939af..f273b482 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,11 @@ src/ ├── 1-getting-started/ │ ├── example1/ │ │ ├── nan/ -│ │ │ └── files for nan version of example1 +│ │ │ └── nan version of example1 │ │ ├── node-addon-api +│ │ │ └── node-addon-api version of example1 │ │ └── napi +│ │ └── napi version of example1 │ └── example2/ ├── 2-js-to-native-conversion/ ├── 3-context-awareness/ From 7f343433fd131b184068b7461ad64eb171b690be Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:27:39 +0200 Subject: [PATCH 14/17] docs: update directory structure to README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f273b482..895fe831 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ src/ │ ├── example1/ │ │ ├── nan/ │ │ │ └── nan version of example1 -│ │ ├── node-addon-api +│ │ ├── node-addon-api/ │ │ │ └── node-addon-api version of example1 -│ │ └── napi +│ │ └── napi/ │ │ └── napi version of example1 │ └── example2/ ├── 2-js-to-native-conversion/ From 50a89d5cfe3e787c151510403fcce2d71e22c802 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Fri, 13 Oct 2023 19:28:13 +0200 Subject: [PATCH 15/17] docs: update directory structure to README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 895fe831..95f7fe5e 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ src/ ├── 5-async-work/ ├── 6-threadsafe-function/ ├── 7-events/ -├── 8-tooling/ +└── 8-tooling/ ``` In each example's implementation subdirectory, run From 30b21decfcc9bddef676894e1996bbf7b6dc5466 Mon Sep 17 00:00:00 2001 From: Matthew Keil Date: Tue, 17 Oct 2023 12:32:54 +0200 Subject: [PATCH 16/17] docs: update directory structure example in readme --- README.md | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 95f7fe5e..5e46f501 100644 --- a/README.md +++ b/README.md @@ -28,23 +28,25 @@ and `node-addon-api`. The directory structure is as follows: ```sh -src/ -├── 1-getting-started/ -│ ├── example1/ -│ │ ├── nan/ -│ │ │ └── nan version of example1 -│ │ ├── node-addon-api/ -│ │ │ └── node-addon-api version of example1 -│ │ └── napi/ -│ │ └── napi version of example1 -│ └── example2/ -├── 2-js-to-native-conversion/ -├── 3-context-awareness/ -├── 4-references-and-handle-scope/ -├── 5-async-work/ -├── 6-threadsafe-function/ -├── 7-events/ -└── 8-tooling/ +REPO_ROOT +├── test_all.js +├── package.json +├── README.md +└── src + ├── 1-getting-started + │ ├── example1 + │ │ ├── nan + │ │ ├── node-addon-api + │ │ └── napi + │ ├── example2 + │ └── example3 + ├── 2-js-to-native-conversion + ├── 3-context-awareness + ├── 4-references-and-handle-scope + ├── 5-async-work + ├── 6-threadsafe-function + ├── 7-events + └── 8-tooling ``` In each example's implementation subdirectory, run From c6c5496063928e8e6b7400e8c5b8a419ddbfcf7e Mon Sep 17 00:00:00 2001 From: legendecas Date: Fri, 3 Nov 2023 22:28:27 +0800 Subject: [PATCH 17/17] add back build_with_cmake --- .gitignore | 1 - src/8-tooling/build_with_cmake/README.md | 33 +++++++++++++++++++ .../build_with_cmake/napi/CMakeLists.txt | 13 ++++++++ src/8-tooling/build_with_cmake/napi/hello.c | 23 +++++++++++++ src/8-tooling/build_with_cmake/napi/hello.js | 3 ++ .../build_with_cmake/napi/package.json | 14 ++++++++ .../node-addon-api/CMakeLists.txt | 22 +++++++++++++ .../build_with_cmake/node-addon-api/hello.cc | 23 +++++++++++++ .../build_with_cmake/node-addon-api/hello.js | 3 ++ .../node-addon-api/package.json | 15 +++++++++ 10 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 src/8-tooling/build_with_cmake/README.md create mode 100644 src/8-tooling/build_with_cmake/napi/CMakeLists.txt create mode 100644 src/8-tooling/build_with_cmake/napi/hello.c create mode 100644 src/8-tooling/build_with_cmake/napi/hello.js create mode 100644 src/8-tooling/build_with_cmake/napi/package.json create mode 100644 src/8-tooling/build_with_cmake/node-addon-api/CMakeLists.txt create mode 100644 src/8-tooling/build_with_cmake/node-addon-api/hello.cc create mode 100644 src/8-tooling/build_with_cmake/node-addon-api/hello.js create mode 100644 src/8-tooling/build_with_cmake/node-addon-api/package.json diff --git a/.gitignore b/.gitignore index 3413a6eb..1b45478e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ build/ -build_with_cmake/ node_modules/ Debug/ Release/ diff --git a/src/8-tooling/build_with_cmake/README.md b/src/8-tooling/build_with_cmake/README.md new file mode 100644 index 00000000..f7d5c18e --- /dev/null +++ b/src/8-tooling/build_with_cmake/README.md @@ -0,0 +1,33 @@ +## Building Node-API Addons Using CMake.js + +### Examples + +The objective of these examples is to demonstrate how to build Node-API addons using [CMake.js](https://github.com/cmake-js/cmake-js#readme). + +These example projects assume that CMake.js has been installed globally: + +``` +npm install -g cmake-js +cmake-js --help +``` + +Then, in each of the `napi` and `node-addon-api` directories, the following commands build and test each addon: + +``` +npm install +npm test +``` + +Complete CMake.js documentation can be found on the [CMake.js GitHub repository](https://github.com/cmake-js/cmake-js#readme). + +### NAPI_VERSION + +When building Node-API addons, it's important to specify to the build system the Node-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 Node-API is ABI-stable, your Node-API addon will work, without recompilation, with the Node-API version you specify in `NAPI_VERSION` and all subsequent Node-API versions. + +In the absence of a need for features available only in a specific Node-API version, version 3 is a good choice as it is the version of Node-API that was active when Node-API left experimental status. \ No newline at end of file diff --git a/src/8-tooling/build_with_cmake/napi/CMakeLists.txt b/src/8-tooling/build_with_cmake/napi/CMakeLists.txt new file mode 100644 index 00000000..f87b9bb1 --- /dev/null +++ b/src/8-tooling/build_with_cmake/napi/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.9) +cmake_policy(SET CMP0042 NEW) +set (CMAKE_CXX_STANDARD 11) + +project (build-napi-with-cmake) +include_directories(${CMAKE_JS_INC}) +file(GLOB SOURCE_FILES "hello.c") +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) +set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") +target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) + +# Define NAPI_VERSION +add_definitions(-DNAPI_VERSION=3) diff --git a/src/8-tooling/build_with_cmake/napi/hello.c b/src/8-tooling/build_with_cmake/napi/hello.c new file mode 100644 index 00000000..8ae1eee9 --- /dev/null +++ b/src/8-tooling/build_with_cmake/napi/hello.c @@ -0,0 +1,23 @@ +#include +#include + +static napi_value Method(napi_env env, napi_callback_info info) { + napi_status status; + napi_value world; + status = napi_create_string_utf8(env, "Hello, world!", 13, &world); + assert(status == napi_ok); + return world; +} + +#define DECLARE_NAPI_METHOD(name, func) \ + { name, 0, func, 0, 0, 0, napi_default, 0 } + +static napi_value Init(napi_env env, napi_value exports) { + napi_status status; + napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method); + status = napi_define_properties(env, exports, 1, &desc); + assert(status == napi_ok); + return exports; +} + +NAPI_MODULE(hello, Init) diff --git a/src/8-tooling/build_with_cmake/napi/hello.js b/src/8-tooling/build_with_cmake/napi/hello.js new file mode 100644 index 00000000..5940bf9e --- /dev/null +++ b/src/8-tooling/build_with_cmake/napi/hello.js @@ -0,0 +1,3 @@ +var addon = require('bindings')('build-napi-with-cmake'); + +console.log(addon.hello()); // 'world' diff --git a/src/8-tooling/build_with_cmake/napi/package.json b/src/8-tooling/build_with_cmake/napi/package.json new file mode 100644 index 00000000..10f23730 --- /dev/null +++ b/src/8-tooling/build_with_cmake/napi/package.json @@ -0,0 +1,14 @@ +{ + "name": "build-napi-with-cmake", + "version": "0.0.0", + "description": "Build Node-API native addon with CMake.", + "main": "hello.js", + "private": true, + "dependencies": { + "bindings": "~1.2.1" + }, + "scripts": { + "install": "cmake-js compile", + "test": "node hello.js" + } +} diff --git a/src/8-tooling/build_with_cmake/node-addon-api/CMakeLists.txt b/src/8-tooling/build_with_cmake/node-addon-api/CMakeLists.txt new file mode 100644 index 00000000..456d2312 --- /dev/null +++ b/src/8-tooling/build_with_cmake/node-addon-api/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.9) +cmake_policy(SET CMP0042 NEW) +set (CMAKE_CXX_STANDARD 11) + +project (build-node-addon-api-with-cmake) +include_directories(${CMAKE_JS_INC}) +file(GLOB SOURCE_FILES "hello.cc") +add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC}) +set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node") +target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB}) + +# Include Node-API wrappers +execute_process(COMMAND node -p "require('node-addon-api').include" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE NODE_ADDON_API_DIR + ) +string(REGEX REPLACE "[\r\n\"]" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR}) + +target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR}) + +# define NAPI_VERSION +add_definitions(-DNAPI_VERSION=3) diff --git a/src/8-tooling/build_with_cmake/node-addon-api/hello.cc b/src/8-tooling/build_with_cmake/node-addon-api/hello.cc new file mode 100644 index 00000000..1c422da3 --- /dev/null +++ b/src/8-tooling/build_with_cmake/node-addon-api/hello.cc @@ -0,0 +1,23 @@ +#include + +static Napi::String Method(const Napi::CallbackInfo& info) { + // Napi::Env is the opaque data structure containing the environment in which + // the request is being run. We will need this env when we want to create any + // new objects inside of the node.js environment + Napi::Env env = info.Env(); + + // Create a C++ level variable + std::string helloWorld = "Hello, world!"; + + // Return a new javascript string that we copy-construct inside of the node.js + // environment + return Napi::String::New(env, helloWorld); +} + +static Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports.Set(Napi::String::New(env, "hello"), + Napi::Function::New(env, Method)); + return exports; +} + +NODE_API_MODULE(hello, Init) diff --git a/src/8-tooling/build_with_cmake/node-addon-api/hello.js b/src/8-tooling/build_with_cmake/node-addon-api/hello.js new file mode 100644 index 00000000..7edb5d3e --- /dev/null +++ b/src/8-tooling/build_with_cmake/node-addon-api/hello.js @@ -0,0 +1,3 @@ +var addon = require('bindings')('build-node-addon-api-with-cmake'); + +console.log(addon.hello()); // 'world' diff --git a/src/8-tooling/build_with_cmake/node-addon-api/package.json b/src/8-tooling/build_with_cmake/node-addon-api/package.json new file mode 100644 index 00000000..6aedf0d0 --- /dev/null +++ b/src/8-tooling/build_with_cmake/node-addon-api/package.json @@ -0,0 +1,15 @@ +{ + "name": "build-node-addon-api-with-cmake", + "version": "0.0.0", + "description": "Build Node-API native addon with CMake and node-addon-api C++ wrapper.", + "main": "hello.js", + "private": true, + "dependencies": { + "bindings": "~1.2.1", + "node-addon-api": "^1.0.0" + }, + "scripts": { + "install": "cmake-js compile", + "test": "node hello.js" + } +}