ui-config.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {
  2. ADMIN_API_PATH,
  3. DEFAULT_AUTH_TOKEN_HEADER_KEY,
  4. DEFAULT_CHANNEL_TOKEN_KEY,
  5. } from '@vendure/common/lib/shared-constants';
  6. import { VendureConfig } from '@vendure/core';
  7. import {
  8. defaultAvailableLanguages,
  9. defaultAvailableLocales,
  10. defaultLanguage,
  11. defaultLocale,
  12. } from '../constants.js';
  13. import { ResolvedUiConfig, UiConfigPluginOptions } from '../vite-plugin-ui-config.js';
  14. export function getUiConfig(config: VendureConfig, pluginOptions: UiConfigPluginOptions): ResolvedUiConfig {
  15. const { authOptions, apiOptions } = config;
  16. // Merge API configuration with defaults
  17. const api = {
  18. adminApiPath: pluginOptions.api?.adminApiPath ?? apiOptions.adminApiPath ?? ADMIN_API_PATH,
  19. host: pluginOptions.api?.host ?? 'auto',
  20. port: pluginOptions.api?.port ?? 'auto',
  21. tokenMethod:
  22. pluginOptions.api?.tokenMethod ?? (authOptions.tokenMethod === 'bearer' ? 'bearer' : 'cookie'),
  23. authTokenHeaderKey:
  24. pluginOptions.api?.authTokenHeaderKey ??
  25. authOptions.authTokenHeaderKey ??
  26. DEFAULT_AUTH_TOKEN_HEADER_KEY,
  27. channelTokenKey:
  28. pluginOptions.api?.channelTokenKey ?? apiOptions.channelTokenKey ?? DEFAULT_CHANNEL_TOKEN_KEY,
  29. };
  30. // Merge i18n configuration with defaults
  31. const i18n = {
  32. defaultLanguage: pluginOptions.i18n?.defaultLanguage ?? defaultLanguage,
  33. defaultLocale: pluginOptions.i18n?.defaultLocale ?? defaultLocale,
  34. availableLanguages:
  35. pluginOptions.i18n?.availableLanguages && pluginOptions.i18n.availableLanguages.length > 0
  36. ? pluginOptions.i18n.availableLanguages
  37. : defaultAvailableLanguages,
  38. availableLocales:
  39. pluginOptions.i18n?.availableLocales && pluginOptions.i18n.availableLocales.length > 0
  40. ? pluginOptions.i18n.availableLocales
  41. : defaultAvailableLocales,
  42. };
  43. return {
  44. api,
  45. i18n,
  46. };
  47. }