api.module.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { Module } from '@nestjs/common';
  2. import { GraphQLModule } from '@nestjs/graphql';
  3. import { ConfigModule } from '../config/config.module';
  4. import { I18nModule } from '../i18n/i18n.module';
  5. import { ServiceModule } from '../service/service.module';
  6. import { AdministratorResolver } from './administrator/administrator.resolver';
  7. import { AuthResolver } from './auth/auth.resolver';
  8. import { ConfigResolver } from './config/config.resolver';
  9. import { CustomerResolver } from './customer/customer.resolver';
  10. import { FacetResolver } from './facet/facet.resolver';
  11. import { GraphqlConfigService } from './graphql-config.service';
  12. import { JwtStrategy } from './jwt.strategy';
  13. import { ProductOptionResolver } from './product-option/product-option.resolver';
  14. import { ProductResolver } from './product/product.resolver';
  15. const exportedProviders = [
  16. AdministratorResolver,
  17. AuthResolver,
  18. ConfigResolver,
  19. FacetResolver,
  20. CustomerResolver,
  21. ProductOptionResolver,
  22. ProductResolver,
  23. ];
  24. /**
  25. * The ApiModule is responsible for the public API of the application. This is where requests
  26. * come in, are parsed and then handed over to the ServiceModule classes which take care
  27. * of the business logic.
  28. */
  29. @Module({
  30. imports: [
  31. ServiceModule,
  32. GraphQLModule.forRootAsync({
  33. useClass: GraphqlConfigService,
  34. imports: [ConfigModule, I18nModule],
  35. }),
  36. ],
  37. providers: [...exportedProviders, JwtStrategy],
  38. exports: exportedProviders,
  39. })
  40. export class ApiModule {}