diff --git a/package-lock.json b/package-lock.json index f3a25ce..5b87d64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -163,9 +163,9 @@ "dev": true }, "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, "once": { "version": "1.4.0", diff --git a/package.json b/package.json index 68b8b98..cc79e12 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "build/Release/fontmanager", "types": "index.d.ts", "dependencies": { - "nan": ">=2.10.0" + "nan": "^2.14.0" }, "devDependencies": { "mocha": "*" diff --git a/src/FontDescriptor.h b/src/FontDescriptor.h index 270d53e..74654e5 100644 --- a/src/FontDescriptor.h +++ b/src/FontDescriptor.h @@ -112,27 +112,26 @@ struct FontDescriptor { Local toJSObject() { Nan::EscapableHandleScope scope; Local res = Nan::New(); - if (path) { - Nan::Set(res, Nan::New("path").ToLocalChecked(), Nan::New(path).ToLocalChecked()); + Nan::Set(res, Nan::New("path").ToLocalChecked(), Nan::New(path).ToLocalChecked()); } - + if (postscriptName) { - Nan::Set(res, Nan::New("postscriptName").ToLocalChecked(), Nan::New(postscriptName).ToLocalChecked()); + Nan::Set(res, Nan::New("postscriptName").ToLocalChecked(), Nan::New(postscriptName).ToLocalChecked()); } - + if (family) { - Nan::Set(res, Nan::New("family").ToLocalChecked(), Nan::New(family).ToLocalChecked()); + Nan::Set(res, Nan::New("family").ToLocalChecked(), Nan::New(family).ToLocalChecked()); } - + if (style) { - Nan::Set(res, Nan::New("style").ToLocalChecked(), Nan::New(style).ToLocalChecked()); + Nan::Set(res, Nan::New("style").ToLocalChecked(), Nan::New(style).ToLocalChecked()); } - - Nan::Set(res, Nan::New("weight").ToLocalChecked(), Nan::New(weight)); - Nan::Set(res, Nan::New("width").ToLocalChecked(), Nan::New(width)); - Nan::Set(res, Nan::New("italic").ToLocalChecked(), Nan::New(italic)); - Nan::Set(res, Nan::New("monospace").ToLocalChecked(), Nan::New(monospace)); + + Nan::Set(res, Nan::New("weight").ToLocalChecked(), Nan::New(weight)); + Nan::Set(res, Nan::New("width").ToLocalChecked(), Nan::New(width)); + Nan::Set(res, Nan::New("italic").ToLocalChecked(), Nan::New(italic)); + Nan::Set(res, Nan::New("monospace").ToLocalChecked(), Nan::New(monospace)); return scope.Escape(res); } @@ -148,10 +147,15 @@ struct FontDescriptor { char *getString(Local obj, const char *name) { Nan::HandleScope scope; - MaybeLocal value = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + Nan::MaybeLocal maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + + if (maybeValue.IsEmpty()) { + return NULL; + } - if (!value.IsEmpty() && value.ToLocalChecked()->IsString()) { - return copyString(*Nan::Utf8String(value.ToLocalChecked())); + v8::Local value = maybeValue.ToLocalChecked(); + if (value->IsString()) { + return copyString(*Nan::Utf8String(Nan::To(value).ToLocalChecked())); } return NULL; @@ -159,10 +163,15 @@ struct FontDescriptor { int getNumber(Local obj, const char *name) { Nan::HandleScope scope; - MaybeLocal value = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + Nan::MaybeLocal maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + + if (maybeValue.IsEmpty()) { + return 0; + } - if (!value.IsEmpty() && value.ToLocalChecked()->IsNumber()) { - return value.ToLocalChecked()->Int32Value(Nan::GetCurrentContext()).FromJust(); + v8::Local value = maybeValue.ToLocalChecked(); + if (value->IsNumber()) { + return Nan::To(value).FromJust(); } return 0; @@ -170,10 +179,15 @@ struct FontDescriptor { bool getBool(Local obj, const char *name) { Nan::HandleScope scope; - MaybeLocal value = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + Nan::MaybeLocal maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked()); + + if (maybeValue.IsEmpty()) { + return false; + } - if (!value.IsEmpty() && value.ToLocalChecked()->IsBoolean()) { - return value.ToLocalChecked()->BooleanValue(Nan::GetCurrentContext()).FromJust(); + v8::Local value = maybeValue.ToLocalChecked(); + if (value->IsBoolean()) { + return Nan::To(value).FromJust(); } return false;