default-config.ts 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import { LanguageCode } from '@vendure/common/lib/generated-types';
  2. import {
  3. DEFAULT_AUTH_TOKEN_HEADER_KEY,
  4. SUPER_ADMIN_USER_IDENTIFIER,
  5. SUPER_ADMIN_USER_PASSWORD,
  6. } from '@vendure/common/lib/shared-constants';
  7. import { InMemoryJobQueueStrategy } from '../job-queue/in-memory-job-queue-strategy';
  8. import { DefaultAssetNamingStrategy } from './asset-naming-strategy/default-asset-naming-strategy';
  9. import { NoAssetPreviewStrategy } from './asset-preview-strategy/no-asset-preview-strategy';
  10. import { NoAssetStorageStrategy } from './asset-storage-strategy/no-asset-storage-strategy';
  11. import { NativeAuthenticationStrategy } from './auth/native-authentication-strategy';
  12. import { defaultCollectionFilters } from './catalog/default-collection-filters';
  13. import { DefaultProductVariantPriceCalculationStrategy } from './catalog/default-product-variant-price-calculation-strategy';
  14. import { DefaultStockDisplayStrategy } from './catalog/default-stock-display-strategy';
  15. import { AutoIncrementIdStrategy } from './entity-id-strategy/auto-increment-id-strategy';
  16. import { manualFulfillmentHandler } from './fulfillment/manual-fulfillment-handler';
  17. import { DefaultLogger } from './logger/default-logger';
  18. import { DefaultChangedPriceHandlingStrategy } from './order/default-changed-price-handling-strategy';
  19. import { DefaultOrderItemPriceCalculationStrategy } from './order/default-order-item-price-calculation-strategy';
  20. import { DefaultOrderPlacedStrategy } from './order/default-order-placed-strategy';
  21. import { DefaultStockAllocationStrategy } from './order/default-stock-allocation-strategy';
  22. import { MergeOrdersStrategy } from './order/merge-orders-strategy';
  23. import { DefaultOrderCodeStrategy } from './order/order-code-strategy';
  24. import { UseGuestStrategy } from './order/use-guest-strategy';
  25. import { defaultPromotionActions, defaultPromotionConditions } from './promotion';
  26. import { InMemorySessionCacheStrategy } from './session-cache/in-memory-session-cache-strategy';
  27. import { defaultShippingCalculator } from './shipping-method/default-shipping-calculator';
  28. import { defaultShippingEligibilityChecker } from './shipping-method/default-shipping-eligibility-checker';
  29. import { DefaultTaxLineCalculationStrategy } from './tax/default-tax-line-calculation-strategy';
  30. import { DefaultTaxZoneStrategy } from './tax/default-tax-zone-strategy';
  31. import { RuntimeVendureConfig } from './vendure-config';
  32. /**
  33. * @description
  34. * The default configuration settings which are used if not explicitly overridden in the bootstrap() call.
  35. *
  36. * @docsCategory configuration
  37. */
  38. export const defaultConfig: RuntimeVendureConfig = {
  39. defaultChannelToken: null,
  40. defaultLanguageCode: LanguageCode.en,
  41. logger: new DefaultLogger(),
  42. apiOptions: {
  43. hostname: '',
  44. port: 3000,
  45. adminApiPath: 'admin-api',
  46. adminApiPlayground: false,
  47. adminApiDebug: false,
  48. adminApiValidationRules: [],
  49. shopApiPath: 'shop-api',
  50. shopApiPlayground: false,
  51. shopApiDebug: false,
  52. shopApiValidationRules: [],
  53. channelTokenKey: 'vendure-token',
  54. cors: {
  55. origin: true,
  56. credentials: true,
  57. },
  58. middleware: [],
  59. apolloServerPlugins: [],
  60. },
  61. authOptions: {
  62. disableAuth: false,
  63. tokenMethod: 'cookie',
  64. sessionSecret: '',
  65. cookieOptions: {
  66. secret: Math.random().toString(36).substr(3),
  67. httpOnly: true,
  68. },
  69. authTokenHeaderKey: DEFAULT_AUTH_TOKEN_HEADER_KEY,
  70. sessionDuration: '1y',
  71. sessionCacheStrategy: new InMemorySessionCacheStrategy(),
  72. sessionCacheTTL: 300,
  73. requireVerification: true,
  74. verificationTokenDuration: '7d',
  75. superadminCredentials: {
  76. identifier: SUPER_ADMIN_USER_IDENTIFIER,
  77. password: SUPER_ADMIN_USER_PASSWORD,
  78. },
  79. shopAuthenticationStrategy: [new NativeAuthenticationStrategy()],
  80. adminAuthenticationStrategy: [new NativeAuthenticationStrategy()],
  81. customPermissions: [],
  82. },
  83. catalogOptions: {
  84. collectionFilters: defaultCollectionFilters,
  85. productVariantPriceCalculationStrategy: new DefaultProductVariantPriceCalculationStrategy(),
  86. stockDisplayStrategy: new DefaultStockDisplayStrategy(),
  87. },
  88. entityIdStrategy: new AutoIncrementIdStrategy(),
  89. assetOptions: {
  90. assetNamingStrategy: new DefaultAssetNamingStrategy(),
  91. assetStorageStrategy: new NoAssetStorageStrategy(),
  92. assetPreviewStrategy: new NoAssetPreviewStrategy(),
  93. permittedFileTypes: ['image/*', 'video/*', 'audio/*', '.pdf'],
  94. uploadMaxFileSize: 20971520,
  95. },
  96. dbConnectionOptions: {
  97. timezone: 'Z',
  98. type: 'mysql',
  99. },
  100. promotionOptions: {
  101. promotionConditions: defaultPromotionConditions,
  102. promotionActions: defaultPromotionActions,
  103. },
  104. shippingOptions: {
  105. shippingEligibilityCheckers: [defaultShippingEligibilityChecker],
  106. shippingCalculators: [defaultShippingCalculator],
  107. customFulfillmentProcess: [],
  108. fulfillmentHandlers: [manualFulfillmentHandler],
  109. },
  110. orderOptions: {
  111. orderItemsLimit: 999,
  112. orderLineItemsLimit: 999,
  113. orderItemPriceCalculationStrategy: new DefaultOrderItemPriceCalculationStrategy(),
  114. mergeStrategy: new MergeOrdersStrategy(),
  115. checkoutMergeStrategy: new UseGuestStrategy(),
  116. process: [],
  117. stockAllocationStrategy: new DefaultStockAllocationStrategy(),
  118. orderCodeStrategy: new DefaultOrderCodeStrategy(),
  119. changedPriceHandlingStrategy: new DefaultChangedPriceHandlingStrategy(),
  120. orderPlacedStrategy: new DefaultOrderPlacedStrategy(),
  121. },
  122. paymentOptions: {
  123. paymentMethodEligibilityCheckers: [],
  124. paymentMethodHandlers: [],
  125. customPaymentProcess: [],
  126. },
  127. taxOptions: {
  128. taxZoneStrategy: new DefaultTaxZoneStrategy(),
  129. taxLineCalculationStrategy: new DefaultTaxLineCalculationStrategy(),
  130. },
  131. importExportOptions: {
  132. importAssetsDir: __dirname,
  133. },
  134. jobQueueOptions: {
  135. jobQueueStrategy: new InMemoryJobQueueStrategy(),
  136. activeQueues: [],
  137. },
  138. customFields: {
  139. Address: [],
  140. Administrator: [],
  141. Asset: [],
  142. Channel: [],
  143. Collection: [],
  144. Customer: [],
  145. Facet: [],
  146. FacetValue: [],
  147. Fulfillment: [],
  148. GlobalSettings: [],
  149. Order: [],
  150. OrderLine: [],
  151. Product: [],
  152. ProductOption: [],
  153. ProductOptionGroup: [],
  154. ProductVariant: [],
  155. User: [],
  156. ShippingMethod: [],
  157. },
  158. plugins: [],
  159. };