summaryrefslogtreecommitdiff
path: root/ext/napi/lib.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-01-10 15:35:46 +0100
committerGitHub <noreply@github.com>2023-01-10 15:35:46 +0100
commit0329bc69dabbcc4d57ff9d34d695ffd4ddb1de4f (patch)
treeaa54ee523d47191c4816fe8d70839f8d892e3ba5 /ext/napi/lib.rs
parent636352e0ca1e611c7673f2ab68538e1ddb2dc5b7 (diff)
fix(napi): handle static properties in classes (#17320)
Adds support for static properties when using "napi_define_class".
Diffstat (limited to 'ext/napi/lib.rs')
-rw-r--r--ext/napi/lib.rs33
1 files changed, 33 insertions, 0 deletions
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<Error> 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<Error> for napi_status {
@@ -603,6 +635,7 @@ where
),
)
};
+
Ok(serde_v8::Value {
v8_value: exports.into(),
})