| # InstanceWrap<T> |
| |
| This class serves as the base class for [`Napi::ObjectWrap<T>`][] and |
| [`Napi::Addon<T>`][]. |
| |
| In the case of [`Napi::Addon<T>`][] it provides the |
| methods for exposing functions to JavaScript on instances of an add-on. |
| |
| As a base class for [`Napi::ObjectWrap<T>`][] it provides the methods for |
| exposing instance methods of JavaScript objects instantiated from the JavaScript |
| class corresponding to the subclass of [`Napi::ObjectWrap<T>`][]. |
| |
| ## Methods |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name, |
| InstanceVoidMethodCallback method, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| void MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name, |
| InstanceMethodCallback method, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| Napi::Value MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name, |
| InstanceVoidMethodCallback method, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] name`: JavaScript symbol that represents the name of the method provided |
| by instances of the class. |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| void MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name, |
| InstanceMethodCallback method, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] name`: JavaScript symbol that represents the name of the method provided |
| by instances of the class. |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| Napi::Value MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| <template typename T> |
| template <typename InstanceWrap<T>::InstanceVoidMethodCallback method> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap::InstanceMethod(const char* utf8name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| void MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| template <typename InstanceWrap<T>::InstanceMethodCallback method> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(const char* utf8name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| Napi::Value MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| template <typename InstanceWrap<T>::InstanceVoidMethodCallback method> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] name`: The `Napi::Symbol` object whose value is used to identify the |
| instance method for the class. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| void MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceMethod |
| |
| Creates a property descriptor that represents a method exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| template <InstanceWrap<T>::InstanceMethodCallback method> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceMethod(Napi::Symbol name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] method`: The native function that represents a method provided by the |
| add-on. |
| - `[in] name`: The `Napi::Symbol` object whose value is used to identify the |
| instance method for the class. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the method when it is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents a method |
| provided by instances of the class. The method must be of the form |
| |
| ```cpp |
| Napi::Value MethodName(const Napi::CallbackInfo& info); |
| ``` |
| |
| ### InstanceAccessor |
| |
| Creates a property descriptor that represents a property exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceAccessor(const char* utf8name, |
| InstanceGetterCallback getter, |
| InstanceSetterCallback setter, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] getter`: The native function to call when a get access to the property |
| is performed. |
| - `[in] setter`: The native function to call when a set access to the property |
| is performed. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the getter or the setter when it |
| is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| accessor property provided by instances of the class. |
| |
| ### InstanceAccessor |
| |
| Creates a property descriptor that represents a property exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceAccessor(Symbol name, |
| InstanceGetterCallback getter, |
| InstanceSetterCallback setter, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] name`: The `Napi::Symbol` object whose value is used to identify the |
| instance accessor. |
| - `[in] getter`: The native function to call when a get access to the property of |
| a JavaScript class is performed. |
| - `[in] setter`: The native function to call when a set access to the property of |
| a JavaScript class is performed. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the getter or the setter when it |
| is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| accessor property provided instances of the class. |
| |
| ### InstanceAccessor |
| |
| Creates a property descriptor that represents a property exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| template <typename InstanceWrap<T>::InstanceGetterCallback getter, |
| typename InstanceWrap<T>::InstanceSetterCallback setter=nullptr> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceAccessor(const char* utf8name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] getter`: The native function to call when a get access to the property of |
| a JavaScript class is performed. |
| - `[in] setter`: The native function to call when a set access to the property of |
| a JavaScript class is performed. |
| - `[in] utf8name`: Null-terminated string that represents the name of the method |
| provided by instances of the class. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the getter or the setter when it |
| is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| accessor property provided by instances of the class. |
| |
| ### InstanceAccessor |
| |
| Creates a property descriptor that represents a property exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| template <typename InstanceWrap<T>::InstanceGetterCallback getter, |
| typename InstanceWrap<T>::InstanceSetterCallback setter=nullptr> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceAccessor(Symbol name, |
| napi_property_attributes attributes = napi_default, |
| void* data = nullptr); |
| ``` |
| |
| - `[in] getter`: The native function to call when a get access to the property of |
| a JavaScript class is performed. |
| - `[in] setter`: The native function to call when a set access to the property of |
| a JavaScript class is performed. |
| - `[in] name`: The `Napi::Symbol` object whose value is used to identify the |
| instance accessor. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| - `[in] data`: User-provided data passed into the getter or the setter when it |
| is invoked. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| accessor property provided by instances of the class. |
| |
| ### InstanceValue |
| |
| Creates property descriptor that represents a value exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceValue(const char* utf8name, |
| Napi::Value value, |
| napi_property_attributes attributes = napi_default); |
| ``` |
| |
| - `[in] utf8name`: Null-terminated string that represents the name of the |
| property. |
| - `[in] value`: The value that's retrieved by a get access of the property. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| value property of an add-on. |
| |
| ### InstanceValue |
| |
| Creates property descriptor that represents a value exposed on JavaScript |
| instances of this class. |
| |
| ```cpp |
| template <typename T> |
| static Napi::ClassPropertyDescriptor<T> |
| Napi::InstanceWrap<T>::InstanceValue(Symbol name, |
| Napi::Value value, |
| napi_property_attributes attributes = napi_default); |
| ``` |
| |
| - `[in] name`: The `Napi::Symbol` object whose value is used to identify the |
| name of the property. |
| - `[in] value`: The value that's retrieved by a get access of the property. |
| - `[in] attributes`: The attributes associated with the property. One or more of |
| `napi_property_attributes`. |
| |
| Returns a `Napi::ClassPropertyDescriptor<T>` object that represents an instance |
| value property of an add-on. |
| |
| [`Napi::Addon<T>`]: ./addon.md |
| [`Napi::ObjectWrap<T>`]: ./object_wrap.md |