Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
                    }
                }
            }
        }