public NodeJsArray CreateArray(int len) { napi_status status = napi_create_array_with_length(_napi_env, len, out IntPtr nativeNodeJsArr); if (status == napi_status.napi_ok) { return(new NodeJsArray(nativeNodeJsArr)); } else { // return(null); } }
public NodeJsValue RunScript(string script) { unsafe { NodeJsString script_nodejs_string = CreateString(script); if (script_nodejs_string != null) { napi_status status = napi_run_script(_napi_env, script_nodejs_string.UnmanagedPtr, out IntPtr result ); if (status == napi_status.napi_ok) { return(new NodeJsValue(result)); } } return(null); } }
public NodeJsExternalBuffer CreateExternalBuffer(IntPtr nativeBuffer, int byteLen) { //we must handle the native buffer properly!!! napi_status status = napi_create_external_buffer(_napi_env, byteLen, nativeBuffer, //s_finalizerPtr,//TODO: review here, use custom finalizer ??? IntPtr.Zero, IntPtr.Zero, out IntPtr result); if (status == napi_status.napi_ok) { return(new NodeJsExternalBuffer(result)); } else { return(null); } }
public NodeJsString CreateString(string input) { byte[] str_buffer = System.Text.Encoding.UTF8.GetBytes(input); unsafe { fixed(byte *str_buffer_ptr = &str_buffer[0]) { napi_status status = napi_create_string_utf8(_napi_env, (IntPtr)str_buffer_ptr, str_buffer.Length, out IntPtr result); if (status == napi_status.napi_ok) { return(new NodeJsString(result)); } else { // return(null); } } } }