Skip to content

Commit 8b66730

Browse files
committed
src: update to latest n-api
PR-URL: #140 Reviewed-By: Jason Ginchereau <[email protected]>
1 parent 646e1b6 commit 8b66730

File tree

7 files changed

+397
-98
lines changed

7 files changed

+397
-98
lines changed

napi-inl.h

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -155,26 +155,21 @@ struct AccessorCallbackData {
155155
////////////////////////////////////////////////////////////////////////////////
156156

157157
#define NODE_API_MODULE(modname, regfunc) \
158-
void __napi_ ## regfunc(napi_env env, \
159-
napi_value exports, \
160-
napi_value module, \
161-
void* priv) { \
162-
Napi::RegisterModule(env, exports, module, regfunc); \
158+
napi_value __napi_ ## regfunc(napi_env env, \
159+
napi_value exports) { \
160+
return Napi::RegisterModule(env, exports, regfunc); \
163161
} \
164162
NAPI_MODULE(modname, __napi_ ## regfunc);
165163

166164
// Adapt the NAPI_MODULE registration function:
167165
// - Wrap the arguments in NAPI wrappers.
168166
// - Catch any NAPI errors and rethrow as JS exceptions.
169-
inline void RegisterModule(napi_env env,
170-
napi_value exports,
171-
napi_value module,
172-
ModuleRegisterCallback registerCallback) {
173-
details::WrapCallback([&] {
174-
registerCallback(Napi::Env(env),
175-
Napi::Object(env, exports),
176-
Napi::Object(env, module));
177-
return nullptr;
167+
inline napi_value RegisterModule(napi_env env,
168+
napi_value exports,
169+
ModuleRegisterCallback registerCallback) {
170+
return details::WrapCallback([&] {
171+
return napi_value(registerCallback(Napi::Env(env),
172+
Napi::Object(env, exports)));
178173
});
179174
}
180175

@@ -1209,7 +1204,7 @@ inline Function Function::New(napi_env env,
12091204

12101205
napi_value value;
12111206
napi_status status = napi_create_function(
1212-
env, utf8name, CbData::Wrapper, callbackData, &value);
1207+
env, utf8name, -1, CbData::Wrapper, callbackData, &value);
12131208
NAPI_THROW_IF_FAILED(env, status, Function());
12141209
return Function(env, value);
12151210
}
@@ -1274,7 +1269,7 @@ inline Value Function::MakeCallback(
12741269
napi_value recv, size_t argc, const napi_value* args) const {
12751270
napi_value result;
12761271
napi_status status = napi_make_callback(
1277-
_env, recv, _value, argc, args, &result);
1272+
_env, nullptr, recv, _value, argc, args, &result);
12781273
NAPI_THROW_IF_FAILED(_env, status, Value());
12791274
return Value(_env, result);
12801275
}
@@ -1481,7 +1476,7 @@ inline Error Error::New(napi_env env, const std::string& message) {
14811476
}
14821477

14831478
inline NAPI_NO_RETURN void Error::Fatal(const char* location, const char* message) {
1484-
napi_fatal_error(location, message);
1479+
napi_fatal_error(location, -1, message, -1);
14851480
}
14861481

14871482
inline Error::Error() : ObjectReference(), _message(nullptr) {
@@ -2317,7 +2312,7 @@ inline Function ObjectWrap<T>::DefineClass(
23172312
void* data) {
23182313
napi_value value;
23192314
napi_status status = napi_define_class(
2320-
env, utf8name, T::ConstructorCallbackWrapper, data, properties.size(),
2315+
env, utf8name, -1, T::ConstructorCallbackWrapper, data, properties.size(),
23212316
reinterpret_cast<const napi_property_descriptor*>(properties.begin()), &value);
23222317
NAPI_THROW_IF_FAILED(env, status, Function());
23232318

@@ -2332,7 +2327,7 @@ inline Function ObjectWrap<T>::DefineClass(
23322327
void* data) {
23332328
napi_value value;
23342329
napi_status status = napi_define_class(
2335-
env, utf8name, T::ConstructorCallbackWrapper, data, properties.size(),
2330+
env, utf8name, -1, T::ConstructorCallbackWrapper, data, properties.size(),
23362331
reinterpret_cast<const napi_property_descriptor*>(properties.data()), &value);
23372332
NAPI_THROW_IF_FAILED(env, status, Function());
23382333

@@ -2685,8 +2680,14 @@ inline AsyncWorker::AsyncWorker(const Object& receiver, const Function& callback
26852680
: _env(callback.Env()),
26862681
_receiver(Napi::Persistent(receiver)),
26872682
_callback(Napi::Persistent(callback)) {
2688-
napi_status status = napi_create_async_work(
2689-
_env, OnExecute, OnWorkComplete, this, &_work);
2683+
2684+
napi_value resource_id;
2685+
napi_status status = napi_create_string_latin1(
2686+
_env, "generic", -1, &resource_id);
2687+
NAPI_THROW_IF_FAILED(_env, status);
2688+
2689+
status = napi_create_async_work(
2690+
_env, nullptr, resource_id, OnExecute, OnWorkComplete, this, &_work);
26902691
NAPI_THROW_IF_FAILED(_env, status);
26912692
}
26922693

napi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ namespace Napi {
7474
typedef TypedArrayOf<double> Float64Array; ///< Typed-array of 64-bit floating-point values
7575

7676
/// Defines the signature of a N-API C++ module's registration callback (init) function.
77-
typedef void (*ModuleRegisterCallback)(Env env, Object exports, Object module);
77+
typedef Object (*ModuleRegisterCallback)(Env env, Object exports);
7878

7979
/// Environment for N-API values and operations.
8080
///

0 commit comments

Comments
 (0)