@@ -1100,37 +1100,24 @@ fn map_row_raw(
11001100 safe_ints : bool ,
11011101 pluck : bool ,
11021102) -> Result < napi:: JsUnknown > {
1103+ if pluck {
1104+ let value = match row. get_value ( 0 ) {
1105+ Ok ( v) => convert_value_to_js ( env, & v, safe_ints) ?,
1106+ Err ( _) => env. get_null ( ) ?. into_unknown ( ) ,
1107+ } ;
1108+ return Ok ( value) ;
1109+ }
11031110 let column_count = column_names. len ( ) ;
1104- let mut js_array = env. create_array ( column_count as u32 ) ?;
1111+ let mut arr = env. create_array ( column_count as u32 ) ?;
11051112 for idx in 0 ..column_count {
11061113 let value = match row. get_value ( idx as i32 ) {
11071114 Ok ( v) => v,
11081115 Err ( e) => return Err ( napi:: Error :: from_reason ( e. to_string ( ) ) ) ,
11091116 } ;
1110- let js_value = match value {
1111- libsql:: Value :: Null => env. get_null ( ) ?. into_unknown ( ) ,
1112- libsql:: Value :: Integer ( v) => {
1113- if safe_ints {
1114- env. create_bigint_from_i64 ( v) ?. into_unknown ( ) ?
1115- } else {
1116- env. create_double ( v as f64 ) ?. into_unknown ( )
1117- }
1118- }
1119- libsql:: Value :: Real ( v) => env. create_double ( v) ?. into_unknown ( ) ,
1120- libsql:: Value :: Text ( v) => env. create_string ( & v) ?. into_unknown ( ) ,
1121- libsql:: Value :: Blob ( v) => env. create_buffer_with_data ( v. clone ( ) ) ?. into_unknown ( ) ,
1122- } ;
1123- js_array. set ( idx as u32 , js_value) ?;
1124- }
1125- if pluck {
1126- let result = match js_array. get :: < JsUnknown > ( 0 ) ? {
1127- Some ( value) => value. into_unknown ( ) ,
1128- None => env. get_null ( ) ?. into_unknown ( ) ,
1129- } ;
1130- Ok ( result)
1131- } else {
1132- Ok ( js_array. coerce_to_object ( ) ?. into_unknown ( ) )
1117+ let js_value = convert_value_to_js ( env, & value, safe_ints) ?;
1118+ arr. set ( idx as u32 , js_value) ?;
11331119 }
1120+ Ok ( arr. coerce_to_object ( ) ?. into_unknown ( ) )
11341121}
11351122
11361123static LOGGER_INIT : OnceCell < ( ) > = OnceCell :: new ( ) ;
0 commit comments