Skip to content

useBatchQuery ​

The useBatchQuery composable provides pre-configured BatchQuery objects for common data fetching scenarios in the Geins API. It simplifies the creation of batch query configurations by offering ready-to-use query objects for fetching all items or disabling pagination.

TIP

Batch queries are essential for efficiently fetching large datasets from the Geins API. They support pagination, filtering, and conditional data retrieval.

Features ​

  • Pre-configured query object for matching all items
  • Pre-configured query object for disabling pagination (large datasets)

Usage ​

Here are the different ways you can use the useBatchQuery composable:

Basic Usage ​

ts
const { batchQueryMatchAll, batchQueryNoPagination } = useBatchQuery();

// Use in API repository calls
const allProducts = await productRepo.list(batchQueryMatchAll.value);
const allOrdersNoPagination = await orderRepo.list(
  batchQueryNoPagination.value,
);

Properties and Methods ​

batchQueryMatchAll ​

A ref containing a BatchQuery object configured to match all items.

ts
const { batchQueryMatchAll } = useBatchQuery();
console.log(batchQueryMatchAll.value); // { all: true }

batchQueryNoPagination ​

A ref containing a BatchQuery object configured with a very large page size to effectively disable pagination.

ts
const { batchQueryNoPagination } = useBatchQuery();
console.log(batchQueryNoPagination.value); // { page: 1, pageSize: 10000000 }

Performance Considerations ​

WARNING

When using these composables with large datasets, be mindful of:

  • Memory consumption on the client side
  • Network transfer time
  • API response limits on the server side

Type Definitions ​

ts
interface UseBatchQueryReturnType {
  batchQueryMatchAll: Ref<BatchQuery>;
  batchQueryNoPagination: Ref<BatchQuery>;
}

interface BatchQuery {
  _id?: string;
  page?: number;
  pageSize?: number;
  all?: boolean;
}