@@ -215,6 +215,19 @@ export class CapacitorSQLiteAdapter extends DBAdapter {
215215 return result . rows ?. _array ?? ( [ ] as T [ ] ) ;
216216 } ;
217217
218+ const getOptional = async < T > ( query : string , params ?: any [ ] ) : Promise < T | null > => {
219+ const results = await getAll < T > ( query , params ) ;
220+ return results . length > 0 ? results [ 0 ] : null ;
221+ } ;
222+
223+ const get = async < T > ( query : string , params ?: any [ ] ) : Promise < T > => {
224+ const result = await getOptional < T > ( query , params ) ;
225+ if ( ! result ) {
226+ throw new Error ( `No results for query: ${ query } ` ) ;
227+ }
228+ return result ;
229+ } ;
230+
218231 const executeRaw = async ( query : string , params ?: any [ ] ) : Promise < RawQueryResult > => {
219232 // This is a workaround, we don't support multiple columns of the same name
220233 const { insertId, rowsAffected, rows } = await execute ( query , params ) ;
@@ -256,6 +269,14 @@ export class CapacitorSQLiteAdapter extends DBAdapter {
256269 return getAll ( sql , parameters ) ;
257270 }
258271
272+ get < T > ( sql : string , parameters ?: any [ ] ) : Promise < T > {
273+ return get ( sql , parameters ) ;
274+ }
275+
276+ getOptional < T > ( sql : string , parameters ?: any [ ] ) : Promise < T | null > {
277+ return getOptional ( sql , parameters ) ;
278+ }
279+
259280 execute < T > ( query : string , params ?: any [ ] | undefined ) : Promise < QueryResult < T > > {
260281 return execute < T > ( query , params ) ;
261282 }
0 commit comments