@@ -160,14 +160,7 @@ impl From<libsql::Error> for Error {
160160 }
161161}
162162
163- #[ napi]
164- pub struct Database {
165- db : libsql:: Database ,
166- conn : Option < Arc < tokio:: sync:: Mutex < libsql:: Connection > > > ,
167- default_safe_integers : AtomicBool ,
168- memory : bool ,
169- }
170-
163+ /// Database connection options.
171164#[ napi( object) ]
172165pub struct Options {
173166 pub timeout : Option < f64 > ,
@@ -176,6 +169,15 @@ pub struct Options {
176169 pub syncPeriod : Option < f64 > ,
177170}
178171
172+ /// Database connection.
173+ #[ napi]
174+ pub struct Database {
175+ db : libsql:: Database ,
176+ conn : Option < Arc < tokio:: sync:: Mutex < libsql:: Connection > > > ,
177+ default_safe_integers : AtomicBool ,
178+ memory : bool ,
179+ }
180+
179181impl Drop for Database {
180182 fn drop ( & mut self ) {
181183 self . conn = None ;
@@ -245,16 +247,15 @@ impl Database {
245247 self . memory
246248 }
247249
248- #[ napi( js_name = "inTransaction" ) ]
250+ #[ napi]
249251 pub fn in_transaction ( & self ) -> Result < bool > {
250252 let rt = runtime ( ) ?;
251253 let conn = match & self . conn {
252254 Some ( conn) => conn. clone ( ) ,
253255 None => return Ok ( false ) ,
254256 } ;
255- let conn_ = conn. clone ( ) ;
256257 Ok ( rt. block_on ( async move {
257- let conn = conn_ . lock ( ) . await ;
258+ let conn = conn . lock ( ) . await ;
258259 !conn. is_autocommit ( )
259260 } ) )
260261 }
@@ -452,7 +453,7 @@ fn is_remote_path(path: &str) -> bool {
452453fn throw_database_closed_error ( env : & Env ) -> napi:: Error {
453454 let msg = "The database connection is not open" ;
454455 let err = napi:: Error :: new ( napi:: Status :: InvalidArg , msg. to_string ( ) ) ;
455- env. throw_type_error ( & msg, None ) . unwrap ( ) ;
456+ env. throw_type_error ( msg, None ) . unwrap ( ) ;
456457 err
457458}
458459
@@ -680,17 +681,17 @@ impl Statement {
680681 let safe_ints = self . safe_ints . load ( Ordering :: SeqCst ) ;
681682 let raw = self . raw . load ( Ordering :: SeqCst ) ;
682683 let pluck = self . pluck . load ( Ordering :: SeqCst ) ;
684+ let stmt = self . stmt . clone ( ) ;
683685 let params = {
684- let stmt = self . stmt . clone ( ) ;
686+ let stmt = stmt. clone ( ) ;
685687 rt. block_on ( async move {
686688 let mut stmt = stmt. lock ( ) . await ;
687689 stmt. reset ( ) ;
688- let params = if let Some ( params) = params {
690+ if let Some ( params) = params {
689691 map_params ( & stmt, Some ( params) ) . unwrap ( )
690692 } else {
691693 libsql:: params:: Params :: None
692- } ;
693- params
694+ }
694695 } )
695696 } ;
696697 let stmt = self . stmt . clone ( ) ;
@@ -721,16 +722,13 @@ impl Statement {
721722 let raw = self . raw . load ( Ordering :: SeqCst ) ;
722723 let pluck = self . pluck . load ( Ordering :: SeqCst ) ;
723724 let stmt = self . stmt . clone ( ) ;
724- let future = async move {
725+ let ( rows , column_names ) = rt . block_on ( async move {
725726 let mut stmt = stmt. lock ( ) . await ;
726- let params = {
727- stmt. reset ( ) ;
728- let params = if let Some ( params) = params {
729- map_params ( & stmt, Some ( params) ) . unwrap ( )
730- } else {
731- libsql:: params:: Params :: None
732- } ;
733- params
727+ stmt. reset ( ) ;
728+ let params = if let Some ( params) = params {
729+ map_params ( & stmt, Some ( params) ) . unwrap ( )
730+ } else {
731+ libsql:: params:: Params :: None
734732 } ;
735733 let rows = stmt. query ( params) . await . map_err ( Error :: from) ?;
736734 let mut column_names = Vec :: new ( ) ;
@@ -740,8 +738,7 @@ impl Statement {
740738 ) ;
741739 }
742740 Ok :: < _ , napi:: Error > ( ( rows, column_names) )
743- } ;
744- let ( rows, column_names) = rt. block_on ( future) ?;
741+ } ) ?;
745742 Ok ( RowsIterator :: new (
746743 Arc :: new ( tokio:: sync:: Mutex :: new ( rows) ) ,
747744 column_names,
@@ -1059,7 +1056,7 @@ fn map_row_raw(
10591056 let column_count = column_names. len ( ) ;
10601057 let mut js_array = env. create_array ( column_count as u32 ) ?;
10611058
1062- for idx in 0 .. column_count {
1059+ for ( idx, _col_name ) in column_names . iter ( ) . enumerate ( ) . take ( column_count) {
10631060 let value = match row. get_value ( idx as i32 ) {
10641061 Ok ( v) => v,
10651062 Err ( e) => return Err ( napi:: Error :: from_reason ( e. to_string ( ) ) ) ,
0 commit comments