Procházet zdrojové kódy

feat(core): Update to Nestjs v7

BREAKING CHANGE: Nestjs has been updated to v7. If you make use of any of the Nest internals in your plugins, this may cause some breaking changes. Please see the [Nest migration guide](https://docs.nestjs.com/migration-guide) for details.

  This release also includes updates to many dependencies which in turn have dropped support for Node.js v8. Therefore **Vendure now supports Node.js v10** or higher.
Michael Bromley před 5 roky
rodič
revize
3d6657ae47
24 změnil soubory, kde provedl 540 přidání a 247 odebrání
  1. 7 7
      packages/core/package.json
  2. 3 2
      packages/core/src/api/decorators/api.decorator.ts
  3. 5 5
      packages/core/src/api/decorators/request-context.decorator.ts
  4. 1 1
      packages/core/src/api/middleware/exception-logger.filter.ts
  5. 2 2
      packages/core/src/api/resolvers/admin/global-settings.resolver.ts
  6. 2 2
      packages/core/src/api/resolvers/admin/search.resolver.ts
  7. 7 7
      packages/core/src/api/resolvers/entity/collection-entity.resolver.ts
  8. 4 4
      packages/core/src/api/resolvers/entity/customer-entity.resolver.ts
  9. 2 2
      packages/core/src/api/resolvers/entity/fulfillment-entity.resolver.ts
  10. 6 6
      packages/core/src/api/resolvers/entity/order-entity.resolver.ts
  11. 2 2
      packages/core/src/api/resolvers/entity/order-line-entity.resolver.ts
  12. 2 2
      packages/core/src/api/resolvers/entity/payment-entity.resolver.ts
  13. 7 7
      packages/core/src/api/resolvers/entity/product-entity.resolver.ts
  14. 6 3
      packages/core/src/api/resolvers/entity/product-option-group-entity.resolver.ts
  15. 6 6
      packages/core/src/api/resolvers/entity/product-variant-entity.resolver.ts
  16. 2 2
      packages/core/src/api/resolvers/entity/refund-entity.resolver.ts
  17. 2 2
      packages/core/src/api/resolvers/entity/role-entity.resolver.ts
  18. 8 0
      packages/core/src/config/logger/default-logger.ts
  19. 3 3
      packages/core/src/plugin/default-search-plugin/fulltext-search.resolver.ts
  20. 5 5
      packages/core/src/plugin/plugin-metadata.ts
  21. 2 2
      packages/core/src/plugin/vendure-plugin.ts
  22. 2 2
      packages/elasticsearch-plugin/src/custom-mappings.resolver.ts
  23. 4 4
      packages/elasticsearch-plugin/src/elasticsearch-resolver.ts
  24. 450 169
      yarn.lock

+ 7 - 7
packages/core/package.json

@@ -38,13 +38,13 @@
     "cli/**/*"
   ],
   "dependencies": {
-    "@nestjs/common": "6.8.5",
-    "@nestjs/core": "6.8.5",
-    "@nestjs/graphql": "6.5.3",
-    "@nestjs/microservices": "^6.8.5",
-    "@nestjs/platform-express": "6.8.5",
-    "@nestjs/testing": "6.8.5",
-    "@nestjs/typeorm": "6.2.0",
+    "@nestjs/common": "7.0.5",
+    "@nestjs/core": "7.0.5",
+    "@nestjs/graphql": "7.0.14",
+    "@nestjs/microservices": "7.0.5",
+    "@nestjs/platform-express": "7.0.5",
+    "@nestjs/testing": "7.0.5",
+    "@nestjs/typeorm": "7.0.0",
     "@types/fs-extra": "^8.0.1",
     "@vendure/common": "^0.10.1",
     "apollo-server-express": "2.9.7",

+ 3 - 2
packages/core/src/api/decorators/api.decorator.ts

@@ -1,4 +1,4 @@
-import { createParamDecorator } from '@nestjs/common';
+import { createParamDecorator, ExecutionContext } from '@nestjs/common';
 import { GraphQLResolveInfo } from 'graphql';
 
 import { getApiType } from '../common/get-api-type';
@@ -23,6 +23,7 @@ import { getApiType } from '../common/get-api-type';
  * @docsCategory request
  * @docsPage Decorators
  */
-export const Api = createParamDecorator((data, [root, args, ctx, info]) => {
+export const Api = createParamDecorator((data, ctx: ExecutionContext) => {
+    const info = ctx.getArgByIndex(3);
     return getApiType(info);
 });

+ 5 - 5
packages/core/src/api/decorators/request-context.decorator.ts

@@ -1,4 +1,4 @@
-import { createParamDecorator } from '@nestjs/common';
+import { ContextType, createParamDecorator, ExecutionContext } from '@nestjs/common';
 
 import { REQUEST_CONTEXT_KEY } from '../common/request-context.service';
 
@@ -18,12 +18,12 @@ import { REQUEST_CONTEXT_KEY } from '../common/request-context.service';
  * @docsCategory request
  * @docsPage Decorators
  */
-export const Ctx = createParamDecorator((data, arg) => {
-    if (Array.isArray(arg)) {
+export const Ctx = createParamDecorator((data, ctx: ExecutionContext) => {
+    if (ctx.getType<ContextType | 'graphql'>() === 'graphql') {
         // GraphQL request
-        return arg[2].req[REQUEST_CONTEXT_KEY];
+        return ctx.getArgByIndex(2).req[REQUEST_CONTEXT_KEY];
     } else {
         // REST request
-        return arg[REQUEST_CONTEXT_KEY];
+        return ctx.switchToHttp().getRequest()[REQUEST_CONTEXT_KEY];
     }
 });

+ 1 - 1
packages/core/src/api/middleware/exception-logger.filter.ts

@@ -40,7 +40,7 @@ export class ExceptionLoggerFilter implements ExceptionFilter {
             message = exception.message;
             let stack = exception.stack;
             if (statusCode === 404) {
-                message = exception.message.message;
+                message = exception.message;
                 stack = undefined;
             }
             Logger.error(message, undefined, stack);

+ 2 - 2
packages/core/src/api/resolvers/admin/global-settings.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Mutation, Query, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Mutation, Query, ResolveField, Resolver } from '@nestjs/graphql';
 import { MutationUpdateGlobalSettingsArgs, Permission } from '@vendure/common/lib/generated-types';
 
 import { VendureConfig } from '../../../config';
@@ -20,7 +20,7 @@ export class GlobalSettingsResolver {
     /**
      * Exposes a subset of the VendureConfig which may be of use to clients.
      */
-    @ResolveProperty()
+    @ResolveField()
     serverConfig() {
         // Do not expose custom fields marked as "internal".
         const exposedCustomFieldConfig: CustomFields = {};

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

@@ -1,4 +1,4 @@
-import { Mutation, Query, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Mutation, Query, ResolveField, Resolver } from '@nestjs/graphql';
 import { Permission, SearchResponse } from '@vendure/common/lib/generated-types';
 import { Omit } from '@vendure/common/lib/omit';
 
@@ -15,7 +15,7 @@ export class SearchResolver {
         throw new InternalServerError(`error.no-search-plugin-configured`);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(...args: any[]): Promise<Array<{ facetValue: FacetValue; count: number }>> {
         throw new InternalServerError(`error.no-search-plugin-configured`);
     }

+ 7 - 7
packages/core/src/api/resolvers/entity/collection-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { CollectionBreadcrumb, ProductVariantListOptions } from '@vendure/common/lib/generated-types';
 import { PaginatedList } from '@vendure/common/lib/shared-types';
 
@@ -21,7 +21,7 @@ export class CollectionEntityResolver {
         private assetService: AssetService,
     ) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async productVariants(
         @Ctx() ctx: RequestContext,
         @Parent() collection: Collection,
@@ -41,7 +41,7 @@ export class CollectionEntityResolver {
         return this.productVariantService.getVariantsByCollectionId(ctx, collection.id, options);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async breadcrumbs(
         @Ctx() ctx: RequestContext,
         @Parent() collection: Collection,
@@ -49,7 +49,7 @@ export class CollectionEntityResolver {
         return this.collectionService.getBreadcrumbs(ctx, collection) as any;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async parent(@Ctx() ctx: RequestContext, @Parent() collection: Collection): Promise<Collection> {
         if (collection.parent) {
             return collection.parent;
@@ -57,7 +57,7 @@ export class CollectionEntityResolver {
         return this.collectionService.getParent(ctx, collection.id) as any;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async children(@Ctx() ctx: RequestContext, @Parent() collection: Collection): Promise<Collection[]> {
         if (collection.children) {
             return collection.children;
@@ -65,7 +65,7 @@ export class CollectionEntityResolver {
         return this.collectionService.getChildren(ctx, collection.id) as any;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async featuredAsset(
         @Ctx() ctx: RequestContext,
         @Parent() collection: Collection,
@@ -76,7 +76,7 @@ export class CollectionEntityResolver {
         return this.assetService.getFeaturedAsset(collection);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async assets(@Ctx() ctx: RequestContext, @Parent() collection: Collection): Promise<Asset[] | undefined> {
         return this.assetService.getEntityAssets(collection);
     }

+ 4 - 4
packages/core/src/api/resolvers/entity/customer-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { QueryOrdersArgs } from '@vendure/common/lib/generated-types';
 import { PaginatedList } from '@vendure/common/lib/shared-types';
 
@@ -20,7 +20,7 @@ export class CustomerEntityResolver {
         private orderService: OrderService,
         private userService: UserService,
     ) {}
-    @ResolveProperty()
+    @ResolveField()
     async addresses(
         @Ctx() ctx: RequestContext,
         @Parent() customer: Customer,
@@ -33,7 +33,7 @@ export class CustomerEntityResolver {
         return this.customerService.findAddressesByCustomerId(ctx, customer.id);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async orders(
         @Ctx() ctx: RequestContext,
         @Parent() customer: Customer,
@@ -47,7 +47,7 @@ export class CustomerEntityResolver {
         return this.orderService.findByCustomerId(ctx, customer.id, args.options || undefined);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     user(@Ctx() ctx: RequestContext, @Parent() customer: Customer) {
         if (customer.user) {
             return customer.user;

+ 2 - 2
packages/core/src/api/resolvers/entity/fulfillment-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 
 import { Fulfillment } from '../../../entity/fulfillment/fulfillment.entity';
 import { OrderService } from '../../../service/services/order.service';
@@ -7,7 +7,7 @@ import { OrderService } from '../../../service/services/order.service';
 export class FulfillmentEntityResolver {
     constructor(private orderService: OrderService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async orderItems(@Parent() fulfillment: Fulfillment) {
         return this.orderService.getFulfillmentOrderItems(fulfillment.id);
     }

+ 6 - 6
packages/core/src/api/resolvers/entity/order-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { HistoryEntryListOptions, OrderHistoryArgs, SortOrder } from '@vendure/common/lib/generated-types';
 
 import { Order } from '../../../entity/order/order.entity';
@@ -18,7 +18,7 @@ export class OrderEntityResolver {
         private historyService: HistoryService,
     ) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async payments(@Parent() order: Order) {
         if (order.payments) {
             return order.payments;
@@ -26,7 +26,7 @@ export class OrderEntityResolver {
         return this.orderService.getOrderPayments(order.id);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async shippingMethod(@Ctx() ctx: RequestContext, @Parent() order: Order) {
         if (order.shippingMethodId) {
             // Does not need to be decoded because it is an internal property
@@ -38,12 +38,12 @@ export class OrderEntityResolver {
         }
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async fulfillments(@Parent() order: Order) {
         return this.orderService.getOrderFulfillments(order);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async history(@Api() apiType: ApiType, @Parent() order: Order, @Args() args: OrderHistoryArgs) {
         const publicOnly = apiType === 'shop';
         const options: HistoryEntryListOptions = { ...args.options };
@@ -53,7 +53,7 @@ export class OrderEntityResolver {
         return this.historyService.getHistoryForOrder(order.id, publicOnly, options);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async promotions(@Parent() order: Order) {
         if (order.promotions) {
             return order.promotions;

+ 2 - 2
packages/core/src/api/resolvers/entity/order-line-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 
 import { Translated } from '../../../common/types/locale-types';
 import { assertFound } from '../../../common/utils';
@@ -11,7 +11,7 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class OrderLineEntityResolver {
     constructor(private productVariantService: ProductVariantService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async productVariant(
         @Ctx() ctx: RequestContext,
         @Parent() orderLine: OrderLine,

+ 2 - 2
packages/core/src/api/resolvers/entity/payment-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 
 import { Payment } from '../../../entity/payment/payment.entity';
 import { Refund } from '../../../entity/refund/refund.entity';
@@ -10,7 +10,7 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class PaymentEntityResolver {
     constructor(private orderService: OrderService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async refunds(@Ctx() ctx: RequestContext, @Parent() payment: Payment): Promise<Refund[]> {
         if (payment.refunds) {
             return payment.refunds;

+ 7 - 7
packages/core/src/api/resolvers/entity/product-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { ID } from '@vendure/common/lib/shared-types';
 
 import { Translated } from '../../../common/types/locale-types';
@@ -27,7 +27,7 @@ export class ProductEntityResolver {
         private assetService: AssetService,
     ) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async variants(
         @Ctx() ctx: RequestContext,
         @Parent() product: Product,
@@ -37,7 +37,7 @@ export class ProductEntityResolver {
         return variants.filter(v => (apiType === 'admin' ? true : v.enabled));
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async collections(
         @Ctx() ctx: RequestContext,
         @Parent() product: Product,
@@ -46,7 +46,7 @@ export class ProductEntityResolver {
         return this.collectionService.getCollectionsByProductId(ctx, product.id, apiType === 'shop');
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async optionGroups(
         @Ctx() ctx: RequestContext,
         @Parent() product: Product,
@@ -54,7 +54,7 @@ export class ProductEntityResolver {
         return this.productOptionGroupService.getOptionGroupsByProductId(ctx, product.id);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async featuredAsset(@Ctx() ctx: RequestContext, @Parent() product: Product): Promise<Asset | undefined> {
         if (product.featuredAsset) {
             return product.featuredAsset;
@@ -62,7 +62,7 @@ export class ProductEntityResolver {
         return this.assetService.getFeaturedAsset(product);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async assets(@Ctx() ctx: RequestContext, @Parent() product: Product): Promise<Asset[] | undefined> {
         return this.assetService.getEntityAssets(product);
     }
@@ -72,7 +72,7 @@ export class ProductEntityResolver {
 export class ProductAdminEntityResolver {
     constructor(private productService: ProductService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async channels(@Ctx() ctx: RequestContext, @Parent() product: Product): Promise<Channel[]> {
         if (product.channels) {
             return product.channels;

+ 6 - 3
packages/core/src/api/resolvers/entity/product-option-group-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { Permission } from '@vendure/common/lib/generated-types';
 
 import { Translated } from '../../../common/types/locale-types';
@@ -13,9 +13,12 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class ProductOptionGroupEntityResolver {
     constructor(private productOptionGroupService: ProductOptionGroupService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     @Allow(Permission.ReadCatalog, Permission.Public)
-    async options(@Ctx() ctx: RequestContext, @Parent() optionGroup: Translated<ProductOptionGroup>): Promise<Array<Translated<ProductOption>>> {
+    async options(
+        @Ctx() ctx: RequestContext,
+        @Parent() optionGroup: Translated<ProductOptionGroup>,
+    ): Promise<Array<Translated<ProductOption>>> {
         if (optionGroup.options) {
             return Promise.resolve(optionGroup.options);
         }

+ 6 - 6
packages/core/src/api/resolvers/entity/product-variant-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Parent, ResolveField, Resolver } from '@nestjs/graphql';
 import { StockMovementListOptions } from '@vendure/common/lib/generated-types';
 import { PaginatedList } from '@vendure/common/lib/shared-types';
 
@@ -18,7 +18,7 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class ProductVariantEntityResolver {
     constructor(private productVariantService: ProductVariantService, private assetService: AssetService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async assets(
         @Ctx() ctx: RequestContext,
         @Parent() productVariant: ProductVariant,
@@ -26,7 +26,7 @@ export class ProductVariantEntityResolver {
         return this.assetService.getEntityAssets(productVariant);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async featuredAsset(
         @Ctx() ctx: RequestContext,
         @Parent() productVariant: ProductVariant,
@@ -37,7 +37,7 @@ export class ProductVariantEntityResolver {
         return this.assetService.getFeaturedAsset(productVariant);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async options(
         @Ctx() ctx: RequestContext,
         @Parent() productVariant: ProductVariant,
@@ -48,7 +48,7 @@ export class ProductVariantEntityResolver {
         return this.productVariantService.getOptionsForVariant(ctx, productVariant.id);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(
         @Ctx() ctx: RequestContext,
         @Parent() productVariant: ProductVariant,
@@ -71,7 +71,7 @@ export class ProductVariantEntityResolver {
 export class ProductVariantAdminEntityResolver {
     constructor(private stockMovementService: StockMovementService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async stockMovements(
         @Ctx() ctx: RequestContext,
         @Parent() productVariant: ProductVariant,

+ 2 - 2
packages/core/src/api/resolvers/entity/refund-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 
 import { OrderItem } from '../../../entity/order-item/order-item.entity';
 import { Refund } from '../../../entity/refund/refund.entity';
@@ -10,7 +10,7 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class RefundEntityResolver {
     constructor(private orderService: OrderService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async orderItems(@Ctx() ctx: RequestContext, @Parent() refund: Refund): Promise<OrderItem[]> {
         if (refund.orderItems) {
             return refund.orderItems;

+ 2 - 2
packages/core/src/api/resolvers/entity/role-entity.resolver.ts

@@ -1,4 +1,4 @@
-import { Parent, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
 
 import { Channel } from '../../../entity/channel/channel.entity';
 import { Role } from '../../../entity/role/role.entity';
@@ -10,7 +10,7 @@ import { Ctx } from '../../decorators/request-context.decorator';
 export class RoleEntityResolver {
     constructor(private roleService: RoleService) {}
 
-    @ResolveProperty()
+    @ResolveField()
     async channels(@Ctx() ctx: RequestContext, @Parent() role: Role): Promise<Channel[]> {
         if (role.channels) {
             return role.channels;

+ 8 - 0
packages/core/src/config/logger/default-logger.ts

@@ -80,6 +80,14 @@ export class DefaultLogger implements VendureLogger {
     }
 
     error(message: string, context?: string, trace?: string | undefined): void {
+        if (context === 'ExceptionsHandler' && this.level < LogLevel.Verbose) {
+            // In Nest v7, there is an ExternalExceptionFilter which catches *all*
+            // errors and logs them, no matter the LogLevel attached to the error.
+            // This results in overly-noisy logger output (e.g. a failed login attempt
+            // will log a full stack trace). This check means we only let it log if
+            // we are in Verbose or Debug mode.
+            return;
+        }
         if (this.level >= LogLevel.Error) {
             this.logMessage(
                 chalk.red(`error`),

+ 3 - 3
packages/core/src/plugin/default-search-plugin/fulltext-search.resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Mutation, Parent, Query, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Mutation, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql';
 import {
     JobInfo,
     Permission,
@@ -32,7 +32,7 @@ export class ShopFulltextSearchResolver implements Omit<BaseSearchResolver, 'rei
         return result;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(
         @Ctx() ctx: RequestContext,
         @Parent() parent: { input: SearchInput },
@@ -58,7 +58,7 @@ export class AdminFulltextSearchResolver implements BaseSearchResolver {
         return result;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(
         @Ctx() ctx: RequestContext,
         @Parent() parent: { input: SearchInput },

+ 5 - 5
packages/core/src/plugin/plugin-metadata.ts

@@ -1,5 +1,5 @@
 import { DynamicModule } from '@nestjs/common';
-import { METADATA } from '@nestjs/common/constants';
+import { MODULE_METADATA } from '@nestjs/common/constants';
 import { Type } from '@vendure/common/lib/shared-types';
 
 import { notNullOrUndefined } from '../../../common/lib/shared-utils';
@@ -25,10 +25,10 @@ export function getEntitiesFromPlugins(plugins?: Array<Type<any> | DynamicModule
 
 export function getModuleMetadata(module: Type<any>) {
     return {
-        controllers: Reflect.getMetadata(METADATA.CONTROLLERS, module) || [],
-        providers: Reflect.getMetadata(METADATA.PROVIDERS, module) || [],
-        imports: Reflect.getMetadata(METADATA.IMPORTS, module) || [],
-        exports: Reflect.getMetadata(METADATA.EXPORTS, module) || [],
+        controllers: Reflect.getMetadata(MODULE_METADATA.CONTROLLERS, module) || [],
+        providers: Reflect.getMetadata(MODULE_METADATA.PROVIDERS, module) || [],
+        imports: Reflect.getMetadata(MODULE_METADATA.IMPORTS, module) || [],
+        exports: Reflect.getMetadata(MODULE_METADATA.EXPORTS, module) || [],
     };
 }
 

+ 2 - 2
packages/core/src/plugin/vendure-plugin.ts

@@ -1,5 +1,5 @@
 import { Module } from '@nestjs/common';
-import { METADATA } from '@nestjs/common/constants';
+import { MODULE_METADATA } from '@nestjs/common/constants';
 import { ModuleMetadata } from '@nestjs/common/interfaces';
 import { pick } from '@vendure/common/lib/pick';
 import { Type } from '@vendure/common/lib/shared-types';
@@ -134,7 +134,7 @@ export function VendurePlugin(pluginMetadata: VendurePluginMetadata): ClassDecor
                 Reflect.defineMetadata(property, pluginMetadata[property], target);
             }
         }
-        const nestModuleMetadata = pick(pluginMetadata, Object.values(METADATA) as any);
+        const nestModuleMetadata = pick(pluginMetadata, Object.values(MODULE_METADATA) as any);
         Module(nestModuleMetadata)(target);
     };
 }

+ 2 - 2
packages/elasticsearch-plugin/src/custom-mappings.resolver.ts

@@ -1,5 +1,5 @@
 import { Inject } from '@nestjs/common';
-import { ResolveProperty, Resolver } from '@nestjs/graphql';
+import { ResolveField, Resolver } from '@nestjs/graphql';
 
 import { DeepRequired } from '../../common/lib/shared-types';
 
@@ -15,7 +15,7 @@ import { ElasticsearchOptions } from './options';
 export class CustomMappingsResolver {
     constructor(@Inject(ELASTIC_SEARCH_OPTIONS) private options: DeepRequired<ElasticsearchOptions>) {}
 
-    @ResolveProperty()
+    @ResolveField()
     __resolveType(value: any): string {
         const productPropertyNames = Object.keys(this.options.customProductMappings);
         return Object.keys(value).every(k => productPropertyNames.includes(k))

+ 4 - 4
packages/elasticsearch-plugin/src/elasticsearch-resolver.ts

@@ -1,4 +1,4 @@
-import { Args, Mutation, Parent, Query, ResolveProperty, Resolver } from '@nestjs/graphql';
+import { Args, Mutation, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql';
 import {
     JobInfo,
     Permission,
@@ -28,7 +28,7 @@ export class ShopElasticSearchResolver implements Omit<SearchResolver, 'reindex'
         return result;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(
         @Ctx() ctx: RequestContext,
         @Parent() parent: { input: ElasticSearchInput },
@@ -37,7 +37,7 @@ export class ShopElasticSearchResolver implements Omit<SearchResolver, 'reindex'
         return facetValues.filter(i => !i.facetValue.facet.isPrivate);
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async prices(
         @Ctx() ctx: RequestContext,
         @Parent() parent: { input: ElasticSearchInput },
@@ -62,7 +62,7 @@ export class AdminElasticSearchResolver implements SearchResolver {
         return result;
     }
 
-    @ResolveProperty()
+    @ResolveField()
     async facetValues(
         @Ctx() ctx: RequestContext,
         @Parent() parent: { input: SearchInput },

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 450 - 169
yarn.lock


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů