@@ -11,7 +11,6 @@ import type {
1111 ObjectConfig ,
1212 UnifiedQuery ,
1313 Filter ,
14- AggregateQuery ,
1514 MetadataRegistry
1615} from '@objectql/types' ;
1716import type { QueryAST } from '@objectstack/spec' ;
@@ -175,9 +174,9 @@ export class QueryService {
175174
176175 if ( driver . find ) {
177176 // Legacy driver interface
178- const result = await driver . find ( objectName , query , driverOptions ) ;
179- results = Array . isArray ( result ) ? result : result . value || [ ] ;
180- count = typeof result === 'object' && result . count !== undefined ? result . count : undefined ;
177+ const result : any = await driver . find ( objectName , query , driverOptions ) ;
178+ results = Array . isArray ( result ) ? result : ( result ? .value || [ ] ) ;
179+ count = ( typeof result === 'object' && ! Array . isArray ( result ) && result ? .count !== undefined ) ? result . count : undefined ;
181180 } else if ( driver . executeQuery ) {
182181 // New DriverInterface
183182 const result = await driver . executeQuery ( ast , driverOptions ) ;
@@ -306,13 +305,13 @@ export class QueryService {
306305 * Execute an aggregate query
307306 *
308307 * @param objectName - The object to query
309- * @param aggregation - The aggregation query
308+ * @param query - The aggregation query using UnifiedQuery format
310309 * @param options - Query execution options
311310 * @returns Aggregation results
312311 */
313312 async aggregate (
314313 objectName : string ,
315- aggregation : AggregateQuery ,
314+ query : UnifiedQuery ,
316315 options : QueryOptions = { }
317316 ) : Promise < QueryResult < any [ ] > > {
318317 const driver = this . getDriver ( objectName ) ;
@@ -327,7 +326,7 @@ export class QueryService {
327326
328327 if ( driver . aggregate ) {
329328 // Driver supports aggregation
330- results = await driver . aggregate ( objectName , aggregation , driverOptions ) ;
329+ results = await driver . aggregate ( objectName , query , driverOptions ) ;
331330 } else {
332331 // Driver doesn't support aggregation
333332 throw new Error ( `Driver does not support aggregate operations. Consider using a driver that supports aggregation.` ) ;
@@ -373,10 +372,10 @@ export class QueryService {
373372 let results : any ;
374373
375374 if ( driver . directQuery ) {
376- results = await driver . directQuery ( queryString , params , driverOptions ) ;
375+ results = await driver . directQuery ( queryString , params ) ;
377376 } else if ( driver . query ) {
378377 // Alternative method name
379- results = await driver . query ( queryString , params , driverOptions ) ;
378+ results = await driver . query ( queryString , params ) ;
380379 } else {
381380 throw new Error ( `Driver does not support direct query execution` ) ;
382381 }
0 commit comments