@@ -7,8 +7,8 @@ mod auth;
77#[ macro_use]
88extern crate napi_derive;
99
10- use napi:: bindgen_prelude:: { Array , FromNapiValue } ;
11- use napi:: { Env , JsString , JsUnknown , Result , ValueType } ;
10+ use napi:: bindgen_prelude:: { Array , FromNapiValue , ToNapiValue } ;
11+ use napi:: { Env , JsUnknown , Result , ValueType } ;
1212use once_cell:: sync:: OnceCell ;
1313use std:: sync:: atomic:: { AtomicBool , Ordering } ;
1414use std:: sync:: Arc ;
@@ -918,7 +918,8 @@ fn map_row_object(
918918 env. get_null ( ) ?. into_unknown ( )
919919 }
920920 } else {
921- let mut result = env. create_object ( ) ?;
921+ let result = env. create_object ( ) ?;
922+ let result = unsafe { napi:: JsObject :: to_napi_value ( env. raw ( ) , result) ? } ;
922923 // If not plucking, get all columns
923924 for idx in 0 ..column_count {
924925 let value = match row. get_value ( idx as i32 ) {
@@ -928,8 +929,17 @@ fn map_row_object(
928929
929930 let column_name = column_names[ idx] . as_str ( ) ;
930931 let js_value = convert_value_to_js ( env, & value, safe_ints) ?;
931- result. set_named_property ( column_name, js_value) ?;
932+ let column_name = std:: ffi:: CString :: new ( column_name) . unwrap ( ) ;
933+ unsafe {
934+ napi:: sys:: napi_set_named_property (
935+ env. raw ( ) ,
936+ result,
937+ column_name. as_ptr ( ) ,
938+ napi:: JsUnknown :: to_napi_value ( env. raw ( ) , js_value) ?,
939+ ) ;
940+ }
932941 }
942+ let result: napi:: JsObject = unsafe { napi:: JsObject :: from_napi_value ( env. raw ( ) , result) ? } ;
933943 result. into_unknown ( )
934944 } ;
935945 Ok ( result)
0 commit comments