config.service.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Injectable } from '@nestjs/common';
  2. import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';
  3. import { LanguageCode } from 'shared/generated-types';
  4. import { CustomFields } from 'shared/shared-types';
  5. import { ConnectionOptions } from 'typeorm';
  6. import { ReadOnlyRequired } from '../common/types/common-types';
  7. import { EntityIdStrategy } from '../config/entity-id-strategy/entity-id-strategy';
  8. import { getConfig, VendureConfig } from '../config/vendure-config';
  9. @Injectable()
  10. export class ConfigService implements VendureConfig {
  11. get defaultLanguageCode(): LanguageCode {
  12. return this.activeConfig.defaultLanguageCode;
  13. }
  14. get apiPath(): string {
  15. return this.activeConfig.apiPath;
  16. }
  17. get port(): number {
  18. return this.activeConfig.port;
  19. }
  20. get cors(): boolean | CorsOptions {
  21. return this.activeConfig.cors;
  22. }
  23. get jwtSecret(): string {
  24. return this.activeConfig.jwtSecret;
  25. }
  26. get entityIdStrategy(): EntityIdStrategy {
  27. return this.activeConfig.entityIdStrategy;
  28. }
  29. get dbConnectionOptions(): ConnectionOptions {
  30. return this.activeConfig.dbConnectionOptions;
  31. }
  32. get customFields(): CustomFields {
  33. return this.activeConfig.customFields;
  34. }
  35. private activeConfig: ReadOnlyRequired<VendureConfig>;
  36. constructor() {
  37. this.activeConfig = getConfig();
  38. }
  39. }