From 0329bc69dabbcc4d57ff9d34d695ffd4ddb1de4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 10 Jan 2023 15:35:46 +0100 Subject: fix(napi): handle static properties in classes (#17320) Adds support for static properties when using "napi_define_class". --- ext/napi/lib.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'ext/napi/lib.rs') diff --git a/ext/napi/lib.rs b/ext/napi/lib.rs index e76a08ed9..577545774 100644 --- a/ext/napi/lib.rs +++ b/ext/napi/lib.rs @@ -123,6 +123,38 @@ pub enum Error { WouldDeadlock, } +#[allow(clippy::from_over_into)] +impl Into for napi_status { + fn into(self) -> Error { + match self { + napi_invalid_arg => Error::InvalidArg, + napi_object_expected => Error::ObjectExpected, + napi_string_expected => Error::StringExpected, + napi_name_expected => Error::NameExpected, + napi_function_expected => Error::FunctionExpected, + napi_number_expected => Error::NumberExpected, + napi_boolean_expected => Error::BooleanExpected, + napi_array_expected => Error::ArrayExpected, + napi_generic_failure => Error::GenericFailure, + napi_pending_exception => Error::PendingException, + napi_cancelled => Error::Cancelled, + napi_escape_called_twice => Error::EscapeCalledTwice, + napi_handle_scope_mismatch => Error::HandleScopeMismatch, + napi_callback_scope_mismatch => Error::CallbackScopeMismatch, + napi_queue_full => Error::QueueFull, + napi_closing => Error::Closing, + napi_bigint_expected => Error::BigIntExpected, + napi_date_expected => Error::DateExpected, + napi_arraybuffer_expected => Error::ArrayBufferExpected, + napi_detachable_arraybuffer_expected => { + Error::DetachableArraybufferExpected + } + napi_would_deadlock => Error::WouldDeadlock, + _ => unreachable!(), + } + } +} + pub type Result = std::result::Result<(), Error>; impl From for napi_status { @@ -603,6 +635,7 @@ where ), ) }; + Ok(serde_v8::Value { v8_value: exports.into(), }) -- cgit v1.2.3