From 7bfed600b9b724830c7f6f56df71654acc66b83f Mon Sep 17 00:00:00 2001 From: Adam Nielsen Date: Wed, 20 Nov 2019 20:28:26 +1000 Subject: [PATCH] Update for Node 12 --- package.json | 4 +- src/sane.cc | 100 ++++++++++++++++------------------ src/sane_device.cc | 3 +- src/sane_device.h | 1 - src/sane_handle.cc | 2 +- src/sane_handle.h | 1 - src/sane_option_descriptor.cc | 2 +- src/sane_option_descriptor.h | 1 - src/sane_parameters.cc | 2 +- src/sane_parameters.h | 1 - 10 files changed, 54 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index de77f8b..8738b9c 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ }, "homepage": "https://github.com/yjwong/node-sane#readme", "dependencies": { - "nan": "^2.1.0", - "node-pre-gyp": "^0.6.13" + "nan": "^2.14.0", + "node-pre-gyp": "^0.14.0" }, "bundledDepdencies": [ "node-pre-gyp" diff --git a/src/sane.cc b/src/sane.cc index 68486d7..e89d792 100644 --- a/src/sane.cc +++ b/src/sane.cc @@ -1,10 +1,7 @@ #include #include #include -#include -#include #include -#include #include "sane_device.h" #include "sane_handle.h" #include "sane_option_descriptor.h" @@ -20,7 +17,6 @@ using v8::Array; using v8::Value; using v8::Boolean; using v8::Function; -using v8::Handle; using v8::External; using v8::FunctionTemplate; @@ -55,23 +51,23 @@ class GetDevicesWorker : public Nan::AsyncWorker { Nan::HandleScope scope; Local result = Nan::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); if (status == SANE_STATUS_GOOD) { Local deviceListArr = Nan::New(); for (int i = 0; deviceList[i]; i++) { Local deviceTpl = Nan::New(SaneDevice::constructor_template); - Local deviceFunc = deviceTpl->GetFunction(); - Handle deviceFuncArgs[] = { Nan::New(const_cast(deviceList[i])) }; - Local deviceObj = deviceFunc->NewInstance(1, deviceFuncArgs); - deviceListArr->Set(i, deviceObj); + Local deviceFunc = Nan::GetFunction(deviceTpl).ToLocalChecked(); + Local deviceFuncArgs[] = { Nan::New(const_cast(deviceList[i])) }; + Local deviceObj = Nan::NewInstance(deviceFunc, 1, deviceFuncArgs).ToLocalChecked(); + Nan::Set(deviceListArr, i, deviceObj); } - object->Set(Nan::New("deviceList").ToLocalChecked(), deviceListArr); + Nan::Set(object, Nan::New("deviceList").ToLocalChecked(), deviceListArr); } Local argv[] = { object }; - callback->Call(1, argv); + callback->Call(1, argv, this->async_resource); } private: @@ -118,19 +114,19 @@ NAN_METHOD(GetDevicesSync) { status = sane_get_devices(&deviceList, localOnly); Local result = Nan::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); if (status == SANE_STATUS_GOOD) { Local deviceListArr = Nan::New(); for (int i = 0; deviceList[i]; i++) { Local deviceTpl = Nan::New(SaneDevice::constructor_template); - Local deviceFunc = deviceTpl->GetFunction(); - Handle deviceFuncArgs[] = { Nan::New(const_cast(deviceList[i])) }; - Local deviceObj = deviceFunc->NewInstance(1, deviceFuncArgs); - deviceListArr->Set(i, deviceObj); + Local deviceFunc = Nan::GetFunction(deviceTpl).ToLocalChecked(); + Local deviceFuncArgs[] = { Nan::New(const_cast(deviceList[i])) }; + Local deviceObj = Nan::NewInstance(deviceFunc, 1, deviceFuncArgs).ToLocalChecked(); + Nan::Set(deviceListArr, i, deviceObj); } - object->Set(Nan::New("deviceList").ToLocalChecked(), deviceListArr); + Nan::Set(object, Nan::New("deviceList").ToLocalChecked(), deviceListArr); } info.GetReturnValue().Set(object); @@ -150,18 +146,18 @@ class OpenWorker : public Nan::AsyncWorker { Nan::HandleScope scope; Local result = Nan::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); if (status == SANE_STATUS_GOOD) { Local handleTpl = Nan::New(SaneHandle::constructor_template); - Local handleFunc = handleTpl->GetFunction(); - Handle handleFuncArgs[] = { Nan::New(handle) }; - Local handleObj = handleFunc->NewInstance(1, handleFuncArgs); - object->Set(Nan::New("handle").ToLocalChecked(), handleObj); + Local handleFunc = Nan::GetFunction(handleTpl).ToLocalChecked(); + Local handleFuncArgs[] = { Nan::New(handle) }; + Local handleObj = Nan::NewInstance(handleFunc, 1, handleFuncArgs).ToLocalChecked(); + Nan::Set(object, Nan::New("handle").ToLocalChecked(), handleObj); } Local argv[] = { object }; - callback->Call(1, argv); + callback->Call(1, argv, this->async_resource); } private: @@ -185,7 +181,7 @@ NAN_METHOD(Open) { return Nan::ThrowTypeError("Second argument must be a callback function"); } - String::Utf8Value nameArg (info[0].As()); + Nan::Utf8String nameArg (info[0].As()); std::string name (*nameArg); Nan::Callback* callback = new Nan::Callback(info[1].As()); Nan::AsyncQueueWorker(new OpenWorker(callback, name.c_str())); @@ -202,7 +198,7 @@ NAN_METHOD(OpenSync) { return Nan::ThrowTypeError("First argument must be a string"); } - String::Utf8Value nameArg (info[0].As()); + Nan::Utf8String nameArg (info[0].As()); std::string name (*nameArg); SANE_Handle handle; @@ -210,15 +206,15 @@ NAN_METHOD(OpenSync) { status = sane_open(name.c_str(), &handle); Local result = Nan::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); if (status == SANE_STATUS_GOOD) { Local handleTpl = Nan::New(SaneHandle::constructor_template); - Local handleFunc = handleTpl->GetFunction(); - Handle handleFuncArgs[] = { Nan::New(handle) }; - Local handleObj = handleFunc->NewInstance(1, handleFuncArgs); - object->Set(Nan::New("handle").ToLocalChecked(), handleObj); + Local handleFunc = Nan::GetFunction(handleTpl).ToLocalChecked(); + Local handleFuncArgs[] = { Nan::New(handle) }; + Local handleObj = Nan::NewInstance(handleFunc, 1, handleFuncArgs).ToLocalChecked(); + Nan::Set(object, Nan::New("handle").ToLocalChecked(), handleObj); } info.GetReturnValue().Set(object); @@ -237,7 +233,7 @@ class CloseWorker : public Nan::AsyncWorker { void HandleOKCallback() { Nan::HandleScope scope; Local argv[] = {}; - callback->Call(0, argv); + callback->Call(0, argv, this->async_resource); } private: @@ -312,9 +308,9 @@ NAN_METHOD(GetOptionDescriptor) { } Local descriptorTpl = Nan::New(SaneOptionDescriptor::constructor_template); - Local descriptorFunc = descriptorTpl->GetFunction(); - Handle descriptorFuncArgs[] = { Nan::New(const_cast(option)) }; - Local descriptorObj = descriptorFunc->NewInstance(1, descriptorFuncArgs); + Local descriptorFunc = Nan::GetFunction(descriptorTpl).ToLocalChecked(); + Local descriptorFuncArgs[] = { Nan::New(const_cast(option)) }; + Local descriptorObj = Nan::NewInstance(descriptorFunc, 1, descriptorFuncArgs).ToLocalChecked(); info.GetReturnValue().Set(descriptorObj); } @@ -353,7 +349,7 @@ NAN_METHOD(ControlOption) { status = sane_control_option(handle->getHandle(), n->Value(), (SANE_Action) a->Value(), v, &i); // Perform byte order conversion. - size_t v_words = node::Buffer::Length (info[3]->ToObject()) / sizeof (uint32_t); + size_t v_words = node::Buffer::Length (Nan::To(info[3]).ToLocalChecked()) / sizeof (uint32_t); for (size_t j = 0; j < v_words; j++) { uint32_t* v_uint32 = (uint32_t*) v; v_uint32[j] = htonl(v_uint32[j]); @@ -415,9 +411,9 @@ NAN_METHOD(GetParameters) { status = sane_get_parameters(handle->getHandle(), parameters); if (status == SANE_STATUS_GOOD) { Local paramsTpl = Nan::New(SaneParameters::constructor_template); - Local paramsFunc = paramsTpl->GetFunction(); - Handle paramsFuncArgs[] = { Nan::New(parameters) }; - Local paramsObj = paramsFunc->NewInstance(1, paramsFuncArgs); + Local paramsFunc = Nan::GetFunction(paramsTpl).ToLocalChecked(); + Local paramsFuncArgs[] = { Nan::New(parameters) }; + Local paramsObj = Nan::NewInstance(paramsFunc, 1, paramsFuncArgs).ToLocalChecked(); info.GetReturnValue().Set(paramsObj); } else { info.GetReturnValue().Set(Nan::New(status)); @@ -459,15 +455,15 @@ class ReadWorker : public Nan::AsyncWorker { Nan::HandleScope scope; Local result = Nan::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); if (status == SANE_STATUS_GOOD) { - object->Set(Nan::New("length").ToLocalChecked(), Nan::New(len)); + Nan::Set(object, Nan::New("length").ToLocalChecked(), Nan::New(len)); } Local argv[] = { object }; - callback->Call(1, argv); + callback->Call(1, argv, this->async_resource); } private: @@ -529,10 +525,10 @@ NAN_METHOD(ReadSync) { status = sane_read(handle->getHandle(), buf, node::Buffer::Length(info[1].As()), &len); - Local result = ObjectTemplate::New(); - Local object = result->NewInstance(); - object->Set(Nan::New("status").ToLocalChecked(), Nan::New(status)); - object->Set(Nan::New("length").ToLocalChecked(), Nan::New(len)); + Local result = Nan::New(); + Local object = Nan::NewInstance(result).ToLocalChecked(); + Nan::Set(object, Nan::New("status").ToLocalChecked(), Nan::New(status)); + Nan::Set(object, Nan::New("length").ToLocalChecked(), Nan::New(len)); info.GetReturnValue().Set(object); } @@ -549,7 +545,7 @@ class CancelWorker : public Nan::AsyncWorker { void HandleOKCallback() { Nan::HandleScope scope; Local argv[] = {}; - callback->Call(0, argv); + callback->Call(0, argv, this->async_resource); } private: @@ -629,7 +625,7 @@ NAN_METHOD(NumberToFixed) { info.GetReturnValue().Set(Nan::New(val)); } -void InitAll(Handle exports) { +void InitAll(Local exports) { SaneParameters::Init(exports); SaneHandle::Init(exports); SaneDevice::Init(exports); diff --git a/src/sane_device.cc b/src/sane_device.cc index d1a8d5d..e22bebb 100644 --- a/src/sane_device.cc +++ b/src/sane_device.cc @@ -2,7 +2,6 @@ using v8::Local; using v8::String; -using v8::Handle; using v8::Value; using v8::Function; using v8::FunctionTemplate; @@ -29,7 +28,7 @@ NAN_MODULE_INIT(SaneDevice::Init) { Nan::SetAccessor(tpl->InstanceTemplate(), Nan::New("type").ToLocalChecked(), GetType); constructor_template.Reset(tpl); - target->Set(Nan::New("SaneDevice").ToLocalChecked(), tpl->GetFunction()); + Nan::Set(target, Nan::New("SaneDevice").ToLocalChecked(), Nan::GetFunction(tpl).ToLocalChecked()); } NAN_METHOD(SaneDevice::New) { diff --git a/src/sane_device.h b/src/sane_device.h index 4392874..cdff540 100644 --- a/src/sane_device.h +++ b/src/sane_device.h @@ -2,7 +2,6 @@ #define SANE_DEVICE_H #include -#include #include "nan.h" class SaneDevice : public Nan::ObjectWrap { diff --git a/src/sane_handle.cc b/src/sane_handle.cc index fbb4e73..3989ae2 100644 --- a/src/sane_handle.cc +++ b/src/sane_handle.cc @@ -15,7 +15,7 @@ NAN_MODULE_INIT(SaneHandle::Init) { tpl->InstanceTemplate()->SetInternalFieldCount(1); constructor_template.Reset(tpl); - target->Set(Nan::New("SaneHandle").ToLocalChecked(), tpl->GetFunction()); + Nan::Set(target, Nan::New("SaneHandle").ToLocalChecked(), Nan::GetFunction(tpl).ToLocalChecked()); } NAN_METHOD(SaneHandle::New) { diff --git a/src/sane_handle.h b/src/sane_handle.h index 36dfa6f..fbdceef 100644 --- a/src/sane_handle.h +++ b/src/sane_handle.h @@ -2,7 +2,6 @@ #define SANE_HANDLE_H #include -#include #include "nan.h" class SaneHandle : public Nan::ObjectWrap { diff --git a/src/sane_option_descriptor.cc b/src/sane_option_descriptor.cc index 4fcfb39..3b835b5 100644 --- a/src/sane_option_descriptor.cc +++ b/src/sane_option_descriptor.cc @@ -31,7 +31,7 @@ NAN_MODULE_INIT(SaneOptionDescriptor::Init) { //Nan::SetAccessor(tpl->InstanceTemplate(), Nan::New("constraint").ToLocalChecked(), GetConstraint); constructor_template.Reset(tpl); - target->Set(Nan::New("SaneOptionDescriptor").ToLocalChecked(), tpl->GetFunction()); + Nan::Set(target, Nan::New("SaneOptionDescriptor").ToLocalChecked(), Nan::GetFunction(tpl).ToLocalChecked()); } NAN_METHOD(SaneOptionDescriptor::New) { diff --git a/src/sane_option_descriptor.h b/src/sane_option_descriptor.h index bfaedea..be225ad 100644 --- a/src/sane_option_descriptor.h +++ b/src/sane_option_descriptor.h @@ -2,7 +2,6 @@ #define SANE_OPTION_DESCRIPTOR_H #include -#include #include "nan.h" class SaneOptionDescriptor : public Nan::ObjectWrap { diff --git a/src/sane_parameters.cc b/src/sane_parameters.cc index cbee99f..d338634 100644 --- a/src/sane_parameters.cc +++ b/src/sane_parameters.cc @@ -27,7 +27,7 @@ NAN_MODULE_INIT(SaneParameters::Init) { // Make it visible in JavaScript constructor_template.Reset(tpl); - target->Set(Nan::New("SaneParameters").ToLocalChecked(), tpl->GetFunction()); + Nan::Set(target, Nan::New("SaneParameters").ToLocalChecked(), Nan::GetFunction(tpl).ToLocalChecked()); } NAN_METHOD(SaneParameters::New) { diff --git a/src/sane_parameters.h b/src/sane_parameters.h index 3b99add..ae88564 100644 --- a/src/sane_parameters.h +++ b/src/sane_parameters.h @@ -2,7 +2,6 @@ #define SANE_PARAMETERS_H #include -#include #include "nan.h" class SaneParameters : public node::ObjectWrap {