ui-config.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. // Merge orders configuration with defaults
  44. // Default labels are identifiers that get translated via getTranslatedRefundReason()
  45. const orders = {
  46. refundReasons:
  47. pluginOptions.orders?.refundReasons && pluginOptions.orders.refundReasons.length > 0
  48. ? pluginOptions.orders.refundReasons
  49. : [
  50. { value: 'customer-request', label: 'CustomerRequest' },
  51. { value: 'not-available', label: 'NotAvailable' },
  52. { value: 'damaged-shipping', label: 'DamagedInShipping' },
  53. { value: 'wrong-item', label: 'WrongItem' },
  54. { value: 'other', label: 'Other' },
  55. ],
  56. };
  57. return {
  58. api,
  59. i18n,
  60. orders,
  61. };
  62. }