harmony 鸿蒙Node-API

  • 2022-08-09
  • 浏览 (695)

Node-API

Introduction

Node-API (NAPI) provides APIs to encapsulate JavaScript (JS) capabilities as a native plug-in. It is independent of the underlying JS and is maintained as part of Node.js.

Supported Capabilities

NAPI eliminates the differences between underlying JS engines and provides a set of stable interfaces.

The OpenHarmony N-API component optimizes the Node-API interface implementation and provides connection to underlying engines such as ArkJS. Currently, some interfaces in the Node-API standard library are supported.

Symbols Exported from the N-API Component Standard Library

Type Symbol Description
FUNC napi_module_register Registers the NAPI native module.
FUNC napi_get_last_error_info Obtains the napi_extended_error_info structure, which contains the latest error information.
FUNC napi_throw Throws a JS value.
FUNC napi_throw_error Throws a JS Error with text information.
FUNC napi_throw_type_error Throws a JS TypeError with text information.
FUNC napi_throw_range_error Throws a JS RangeError with text information.
FUNC napi_is_error Checks whether napi_value indicates an error object.
FUNC napi_create_error Creates a JS Error with text information.
FUNC napi_create_type_error Creates a JS TypeError with text information.
FUNC napi_create_range_error Creates a JS RangeError with text information.
FUNC napi_get_and_clear_last_exception Obtains and clears the latest exception.
FUNC napi_is_exception_pending Checks whether an exception occurs.
FUNC napi_fatal_error Raises a fatal error to terminate the process immediately.
FUNC napi_open_handle_scope Creates a context environment.
FUNC napi_close_handle_scope Closes the context environment. After the context environment is closed, all references declared in it are closed.
FUNC napi_open_escapable_handle_scope Creates an escapable handle scope from which the declared values can be returned to the parent scope.
FUNC napi_close_escapable_handle_scope Closes the escapable handle scope passed in.
FUNC napi_escape_handle Promotes the handle to the input JS object so that it is valid for the lifespan of its parent scope.
FUNC napi_create_reference Creates a reference for an Object to extend its lifespan. The caller needs to manage the reference lifespan.
FUNC napi_delete_reference Deletes the reference passed in.
FUNC napi_reference_ref Increments the reference count for the reference passed in and returns the count.
FUNC napi_reference_unref Decrements the reference count for the reference passed in and returns the count.
FUNC napi_get_reference_value Obtains the JS Object associated with the reference.
FUNC napi_create_array Creates a JS Array.
FUNC napi_create_array_with_length Creates a JS Array of the specified length.
FUNC napi_create_arraybuffer Creates a JS ArrayBuffer of the specified size.
FUNC napi_create_external Allocates a JS value with external data.
FUNC napi_create_external_arraybuffer Allocates a JS ArrayBuffer with external data.
FUNC napi_create_object Creates a default JS Object.
FUNC napi_create_symbol Create a JS Symbol.
FUNC napi_create_typedarray Creates a JS TypeArray from an existing ArrayBuffer.
FUNC napi_create_dataview Creates a JS DataView from an existing ArrayBuffer.
FUNC napi_create_int32 Creates a JS Number from C int32_t data.
FUNC napi_create_uint32 Creates a JS Number from C uint32_t data.
FUNC napi_create_int64 Creates a JS Number from C int64_t data.
FUNC napi_create_double Creates a JS Number from C double data.
FUNC napi_create_string_latin1 Creates a JS String from an ISO-8859-1-encoded C string.
FUNC napi_create_string_utf8 Creates a JS String from a UTF8-encoded C string.
FUNC napi_create_string_utf16 Creates a JS String from a UTF16-encoded C string.
FUNC napi_get_array_length Obtains the length of an array.
FUNC napi_get_arraybuffer_info Obtains the underlying data buffer of the ArrayBuffer and its length.
FUNC napi_get_prototype Obtains the prototype of the specified JS Object.
FUNC napi_get_typedarray_info Obtains properties of the specified TypedArray.
FUNC napi_get_dataview_info Obtains properties of the specified DataView.
FUNC napi_get_value_bool Obtains the C Boolean equivalent of the given JS Boolean.
FUNC napi_get_value_double Obtains the C double equivalent of the given JS Number.
FUNC napi_get_value_external Obtains the external data pointer previously passed through napi_create_external().
FUNC napi_get_value_int32 Obtains the C int32 equivalent of the given JS Number.
FUNC napi_get_value_int64 Obtains the C int64 equivalent of the given JS Number.
FUNC napi_get_value_string_latin1 Obtains the ISO-8859-1-encoded string corresponding to the given JS value.
FUNC napi_get_value_string_utf8 Obtains the UTF8-encoded string corresponding to the given JS value.
FUNC napi_get_value_string_utf16 Obtains the UTF16-encoded string corresponding to the given JS value.
FUNC napi_get_value_uint32 Obtains the C uint32 equivalent of the given JS Number.
FUNC napi_get_boolean Obtains the JS Boolean object based on the given C Boolean value.
FUNC napi_get_global Obtains the global object.
FUNC napi_get_null Obtains the null object.
FUNC napi_get_undefined Obtains the undefined object.
FUNC napi_coerce_to_bool Forcibly converts the given JS value to a JS Boolean value.
FUNC napi_coerce_to_number Forcibly converts the given JS value to a JS number.
FUNC napi_coerce_to_object Forcibly converts the given JS value to a JS object.
FUNC napi_coerce_to_string Forcibly converts the given JS value to a JS string.
FUNC napi_typeof Obtains the JS type of the given JS value.
FUNC napi_instanceof Checks whether the given object is an instance of the specified constructor.
FUNC napi_is_array Checks whether the given JS value is an array.
FUNC napi_is_arraybuffer Checks whether the given JS value is a ArrayBuffer.
FUNC napi_is_typedarray Checks whether the given JS value is a TypedArray.
FUNC napi_is_dataview Checks whether the given JS value is a DataView.
FUNC napi_is_date Checks whether the given JS value is a JS Date object.
FUNC napi_strict_equals Checks whether two JS values are strictly equal.
FUNC napi_get_property_names Obtains the names of the enumerable properties of Object in an array of strings.
FUNC napi_set_property Sets a property for the given Object.
FUNC napi_get_property Obtains the requested property of the given Object.
FUNC napi_has_property Checks whether the given Object has the specified property.
FUNC napi_delete_property Deletes the key property from the given Object.
FUNC napi_has_own_property Checks whether the given Object has the own property named key.
FUNC napi_set_named_property Sets a property with the specified name for the given Object.
FUNC napi_get_named_property Obtains the property with the specified name in the given Object.
FUNC napi_has_named_property Checks whether the given Object has the property with the specified name.
FUNC napi_set_element Sets an element at the specified index of the given Object.
FUNC napi_get_element Obtains the element at the specified index of the given Object.
FUNC napi_has_element Obtains the element if the given Object has an element at the specified index.
FUNC napi_delete_element Deletes the element at the specified index of the given Object.
FUNC napi_define_properties Defines multiple properties for the given Object.
FUNC napi_type_tag_object Associates the value of the tag pointer with Object.
FUNC napi_check_object_type_tag Checks whether a tag pointer is associated with the JS Object.
FUNC napi_call_function Calls a JS function in a native method, that is, native call JS.
FUNC napi_create_function Creates a native method for JS to call.
FUNC napi_get_cb_info Obtains detailed information about the call, such as the parameters and this pointer, from the given callback info.
FUNC napi_get_new_target Obtains the new.target of the constructor call.
FUNC napi_new_instance Creates an instance based on the given constructor.
FUNC napi_define_class Defines a JS class corresponding to the C++ class.
FUNC napi_wrap Wraps a native instance in a JS object.
FUNC napi_unwrap Obtains the native instance that was previously wrapped in a JS object.
FUNC napi_remove_wrap Obtains the native instance that was previously wrapped in a JS object and removes the wrapping.
FUNC napi_create_async_work Creates a work object that executes logic asynchronously.
FUNC napi_delete_async_work Releases an asynchronous work object.
FUNC napi_queue_async_work Adds an asynchronous work object to the queue so that it can be scheduled for execution.
FUNC napi_cancel_async_work Cancels the queued asynchronous work if it has not been started.
FUNC napi_get_node_version Obtains the current Node-API version.
FUNC napi_get_version Obtains the latest Node-API version supported when the Node.js runtime.
FUNC napi_create_promise Creates a deferred object and a JS promise.
FUNC napi_resolve_deferred Resolves a deferred object that is associated with a JS promise.
FUNC napi_reject_deferred Rejects a deferred object that is associated with a JS promise.
FUNC napi_is_promise Checks whether the given JS value is a promise object.
FUNC napi_get_uv_event_loop Obtains the current libuv loop instance.
FUNC napi_create_threadsafe_function Creates a thread-safe function.
FUNC napi_get_threadsafe_function_context Obtains the context of a thread-safe function.
FUNC napi_call_threadsafe_function Calls a thread-safe function.
FUNC napi_acquire_threadsafe_function Indicates that a thread starts to use a thread-safe function.
FUNC napi_release_threadsafe_function Indicates that a thread releases a thread-safe function.
FUNC napi_ref_threadsafe_function Indicates that the event loop running on the main thread should not exit until the thread-safe function is destroyed.
FUNC napi_unref_threadsafe_function Indicates that the event loop running on the main thread may exit before the thread-safe function is destroyed.
FUNC napi_create_date Creates a JS Date from C double data.
FUNC napi_get_date_value Obtains the C double equivalent of the given JS Date.
FUNC napi_create_bigint_int64 Creates a JS BigInt from C int64 data.
FUNC napi_create_bigint_uint64 Creates a JS BigInt from C uint64 data.
FUNC napi_create_bigint_words Creates a single JS BigInt from a C uint64 array.
FUNC napi_get_value_bigint_int64 Obtains the C int64 equivalent of the given JS BigInt.
FUNC napi_get_value_bigint_uint64 Obtains the C uint64 equivalent of the given JS BigInt.
FUNC napi_get_value_bigint_words Obtains information from the given JS BigInt, including the sign bit, 64-bit little-endian array, and number of elements in the array.
FUNC napi_create_buffer Creates a JS Buffer instance of the specified size.
FUNC napi_create_buffer_copy Creates a JS Buffer instance of the specified size, and initializes it with data copied from the passed-in buffer.
FUNC napi_create_external_buffer Creates a JS Buffer instance of the specified size, and initializes it with the given data. The Buffer instance created can include extra.
FUNC napi_get_buffer_info Obtains the underlying data of Buffer and its length.
FUNC napi_is_buffer Checks whether the given JS value is a Buffer object.
FUNC napi_object_freeze Freezes the given object.
FUNC napi_object_seal Seals the given object.
FUNC napi_get_all_property_names Obtains an array containing the names of all the available properties of this object.
FUNC napi_detach_arraybuffer Detaches the underlying data of the given ArrayBuffer.
FUNC napi_is_detached_arraybuffer Checks whether the given ArrayBuffer has been detached.

Extended Symbols of the N-API Component

Type Symbol Description
FUNC napi_queue_async_work_with_qos Adds asynchronously working objects to the queue and schedules them based on the QoS priority.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙1.0.0 (2022/03/09)

harmony 鸿蒙1.0.0 (2022/03/09)

harmony 鸿蒙OpenHarmony Docker镜像

harmony 鸿蒙OpenHarmony Docker Image

harmony 鸿蒙Legal Notices

harmony 鸿蒙OpenHarmony Project

harmony 鸿蒙IDL Specifications and User Guide (for System Applications Only)

harmony 鸿蒙Application Development

harmony 鸿蒙OAID Service

harmony 鸿蒙AI

0  赞