Browse Source

perf(core): Optimize recursive collection queries that select variants

Relates to #1718
Michael Bromley 3 years ago
parent
commit
3a76231404

+ 8 - 2
packages/core/src/api/resolvers/admin/collection.resolver.ts

@@ -48,7 +48,10 @@ export class CollectionResolver {
     async collections(
         @Ctx() ctx: RequestContext,
         @Args() args: QueryCollectionsArgs,
-        @Relations({ entity: Collection, omit: ['productVariants', 'assets'] })
+        @Relations({
+            entity: Collection,
+            omit: ['productVariants', 'assets', 'parent.productVariants', 'children.productVariants'],
+        })
         relations: RelationPaths<Collection>,
     ): Promise<PaginatedList<Translated<Collection>>> {
         return this.collectionService.findAll(ctx, args.options || undefined, relations).then(res => {
@@ -62,7 +65,10 @@ export class CollectionResolver {
     async collection(
         @Ctx() ctx: RequestContext,
         @Args() args: QueryCollectionArgs,
-        @Relations({ entity: Collection, omit: ['productVariants', 'assets'] })
+        @Relations({
+            entity: Collection,
+            omit: ['productVariants', 'assets', 'parent.productVariants', 'children.productVariants'],
+        })
         relations: RelationPaths<Collection>,
     ): Promise<Translated<Collection> | undefined> {
         let collection: Translated<Collection> | undefined;

+ 8 - 2
packages/core/src/api/resolvers/shop/shop-products.resolver.ts

@@ -79,7 +79,10 @@ export class ShopProductsResolver {
     async collections(
         @Ctx() ctx: RequestContext,
         @Args() args: QueryCollectionsArgs,
-        @Relations({ entity: Collection, omit: ['productVariants', 'assets'] })
+        @Relations({
+            entity: Collection,
+            omit: ['productVariants', 'assets', 'parent.productVariants', 'children.productVariants'],
+        })
         relations: RelationPaths<Collection>,
     ): Promise<PaginatedList<Translated<Collection>>> {
         const options: ListQueryOptions<Collection> = {
@@ -96,7 +99,10 @@ export class ShopProductsResolver {
     async collection(
         @Ctx() ctx: RequestContext,
         @Args() args: QueryCollectionArgs,
-        @Relations({ entity: Collection, omit: ['productVariants', 'assets'] })
+        @Relations({
+            entity: Collection,
+            omit: ['productVariants', 'assets', 'parent.productVariants', 'children.productVariants'],
+        })
         relations: RelationPaths<Collection>,
     ): Promise<Translated<Collection> | undefined> {
         let collection: Translated<Collection> | undefined;