diff --git a/.changeset/tidy-sloths-sit.md b/.changeset/tidy-sloths-sit.md new file mode 100644 index 0000000000..f5db0da390 --- /dev/null +++ b/.changeset/tidy-sloths-sit.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +chore(medusa): Concurrently get the items and count instead of sequentially diff --git a/packages/medusa/src/repositories/customer.ts b/packages/medusa/src/repositories/customer.ts index fe67ae6472..243c9d0c68 100644 --- a/packages/medusa/src/repositories/customer.ts +++ b/packages/medusa/src/repositories/customer.ts @@ -43,7 +43,7 @@ export const CustomerRepository = dataSource.getRepository(Customer).extend({ ] } - return await this.findAndCount(query_) + return await Promise.all([this.find(query_), this.count(query_)]) }, }) export default CustomerRepository diff --git a/packages/medusa/src/repositories/gift-card.ts b/packages/medusa/src/repositories/gift-card.ts index 9c18368693..aad21f0a23 100644 --- a/packages/medusa/src/repositories/gift-card.ts +++ b/packages/medusa/src/repositories/gift-card.ts @@ -34,7 +34,7 @@ export const GiftCardRepository = dataSource.getRepository(GiftCard).extend({ ] } - return await this.findAndCount(query_) + return await Promise.all([this.find(query_), this.count(query_)]) }, }) export default GiftCardRepository diff --git a/packages/medusa/src/repositories/price-list.ts b/packages/medusa/src/repositories/price-list.ts index ed57a4c384..27e1914bbd 100644 --- a/packages/medusa/src/repositories/price-list.ts +++ b/packages/medusa/src/repositories/price-list.ts @@ -52,7 +52,7 @@ export const PriceListRepository = dataSource.getRepository(PriceList).extend({ ] } - return await this.findAndCount(query_) + return await Promise.all([this.find(query_), this.count(query_)]) }, }) diff --git a/packages/medusa/src/repositories/product-collection.ts b/packages/medusa/src/repositories/product-collection.ts index cd7e44b28a..dcde831a91 100644 --- a/packages/medusa/src/repositories/product-collection.ts +++ b/packages/medusa/src/repositories/product-collection.ts @@ -10,7 +10,7 @@ export const ProductCollectionRepository = dataSource conditionId: string, query: ExtendedFindConfig ): Promise<[ProductCollection[], number]> { - return await this.createQueryBuilder("pc") + const qb = this.createQueryBuilder("pc") .setFindOptions(query) .innerJoin( "discount_condition_product_collection", @@ -18,7 +18,8 @@ export const ProductCollectionRepository = dataSource `dc_pc.product_collection_id = pc.id AND dc_pc.condition_id = :dcId`, { dcId: conditionId } ) - .getManyAndCount() + + return await Promise.all([qb.getMany(), qb.getCount()]) }, }) export default ProductCollectionRepository diff --git a/packages/medusa/src/repositories/product-tag.ts b/packages/medusa/src/repositories/product-tag.ts index 80bba9227f..774582848a 100644 --- a/packages/medusa/src/repositories/product-tag.ts +++ b/packages/medusa/src/repositories/product-tag.ts @@ -91,7 +91,7 @@ export const ProductTagRepository = dataSource conditionId: string, query: ExtendedFindConfig ) { - return await this.createQueryBuilder("pt") + const qb = this.createQueryBuilder("pt") .where(query.where) .setFindOptions(query) .innerJoin( @@ -100,7 +100,8 @@ export const ProductTagRepository = dataSource `dc_pt.product_tag_id = pt.id AND dc_pt.condition_id = :dcId`, { dcId: conditionId } ) - .getManyAndCount() + + return await Promise.all([qb.getMany(), qb.getCount()]) }, }) diff --git a/packages/medusa/src/repositories/product-type.ts b/packages/medusa/src/repositories/product-type.ts index cc0060b837..f42e6d6473 100644 --- a/packages/medusa/src/repositories/product-type.ts +++ b/packages/medusa/src/repositories/product-type.ts @@ -45,7 +45,7 @@ export const ProductTypeRepository = dataSource conditionId: string, query: ExtendedFindConfig ): Promise<[ProductType[], number]> { - return await this.createQueryBuilder("pt") + const qb = this.createQueryBuilder("pt") .where(query.where) .setFindOptions(query) .innerJoin( @@ -54,7 +54,8 @@ export const ProductTypeRepository = dataSource `dc_pt.product_type_id = pt.id AND dc_pt.condition_id = :dcId`, { dcId: conditionId } ) - .getManyAndCount() + + return await Promise.all([qb.getMany(), qb.getCount()]) }, }) export default ProductTypeRepository diff --git a/packages/medusa/src/repositories/tax-rate.ts b/packages/medusa/src/repositories/tax-rate.ts index bbf21e228b..254b1077d4 100644 --- a/packages/medusa/src/repositories/tax-rate.ts +++ b/packages/medusa/src/repositories/tax-rate.ts @@ -67,7 +67,7 @@ export const TaxRateRepository = dataSource.getRepository(TaxRate).extend({ async findAndCountWithResolution(findOptions: FindManyOptions) { const qb = this.getFindQueryBuilder(findOptions) - return await qb.getManyAndCount() + return await Promise.all([qb.getMany(), qb.getCount()]) }, applyResolutionsToQueryBuilder( diff --git a/packages/medusa/src/utils/repository.ts b/packages/medusa/src/utils/repository.ts index 19e2d8b00b..b20f718a3c 100644 --- a/packages/medusa/src/utils/repository.ts +++ b/packages/medusa/src/utils/repository.ts @@ -162,7 +162,7 @@ export async function queryEntityWithoutRelations({ let entities: T[] let count = 0 if (shouldCount) { - const result = await qb.getManyAndCount() + const result = await Promise.all([qb.getMany(), qb.getCount()]) entities = result[0] count = result[1] } else {