medusa-config.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. const dotenv = require("dotenv");
  2. const { Modules } = require("@medusajs/modules-sdk");
  3. let ENV_FILE_NAME = "";
  4. switch (process.env.NODE_ENV) {
  5. case "production":
  6. ENV_FILE_NAME = ".env.production";
  7. break;
  8. case "staging":
  9. ENV_FILE_NAME = ".env.staging";
  10. break;
  11. case "test":
  12. ENV_FILE_NAME = ".env.test";
  13. break;
  14. case "development":
  15. default:
  16. ENV_FILE_NAME = ".env";
  17. break;
  18. }
  19. try {
  20. dotenv.config({ path: process.cwd() + "/" + ENV_FILE_NAME });
  21. } catch (e) {}
  22. // CORS when consuming Medusa from admin
  23. const ADMIN_CORS =
  24. process.env.ADMIN_CORS || "http://localhost:7000,http://localhost:7001";
  25. // CORS to avoid issues when consuming Medusa from a client
  26. const STORE_CORS = process.env.STORE_CORS || "http://localhost:8000";
  27. const DATABASE_URL =
  28. process.env.DATABASE_URL || "postgres://localhost/medusa-starter-default";
  29. const REDIS_URL = process.env.REDIS_URL || "redis://localhost:6379";
  30. const plugins = [
  31. // {
  32. // resolve: "@medusajs/admin",
  33. // /** @type {import('@medusajs/admin').PluginOptions} */
  34. // options: {
  35. // autoRebuild: true,
  36. // develop: {
  37. // open: process.env.OPEN_BROWSER !== "false",
  38. // },
  39. // },
  40. // },
  41. ];
  42. const modules = {
  43. [Modules.CACHE]: true,
  44. [Modules.EVENT_BUS]: true,
  45. [Modules.AUTH]: {
  46. resolve: "@medusajs/auth",
  47. options: {
  48. providers: [
  49. {
  50. name: "emailpass",
  51. scopes: {
  52. admin: {},
  53. store: {},
  54. },
  55. },
  56. ],
  57. },
  58. },
  59. [Modules.USER]: {
  60. resolve: "@medusajs/user",
  61. options: {
  62. jwt_secret: process.env.JWT_SECRET ?? "test",
  63. },
  64. },
  65. [Modules.FILE]: {
  66. resolve: "@medusajs/file",
  67. options: {
  68. providers: [
  69. {
  70. resolve: "@medusajs/file-local-next",
  71. options: {
  72. config: {
  73. local: {},
  74. },
  75. },
  76. },
  77. ],
  78. },
  79. },
  80. [Modules.WORKFLOW_ENGINE]: true,
  81. [Modules.STOCK_LOCATION]: true,
  82. [Modules.INVENTORY]: true,
  83. [Modules.PRODUCT]: true,
  84. [Modules.PRICING]: true,
  85. [Modules.PROMOTION]: true,
  86. [Modules.CUSTOMER]: true,
  87. [Modules.SALES_CHANNEL]: true,
  88. [Modules.CART]: true,
  89. [Modules.REGION]: true,
  90. [Modules.API_KEY]: true,
  91. [Modules.STORE]: true,
  92. [Modules.TAX]: true,
  93. [Modules.CURRENCY]: true,
  94. [Modules.PAYMENT]: true,
  95. [Modules.FULFILLMENT]: {
  96. resolve: "@medusajs/fulfillment",
  97. options: {
  98. providers: [
  99. {
  100. resolve: "@medusajs/fulfillment-manual",
  101. options: {
  102. config: {
  103. manual: {},
  104. },
  105. },
  106. },
  107. ],
  108. },
  109. },
  110. };
  111. /** @type {import('@medusajs/medusa').ConfigModule["projectConfig"]} */
  112. const projectConfig = {
  113. jwtSecret: process.env.JWT_SECRET,
  114. cookieSecret: process.env.COOKIE_SECRET,
  115. store_cors: STORE_CORS,
  116. database_url: DATABASE_URL,
  117. admin_cors: ADMIN_CORS,
  118. auth_cors: process.env.AUTH_CORS || ADMIN_CORS
  119. // Uncomment the following lines to enable REDIS
  120. // redis_url: REDIS_URL
  121. };
  122. /** @type {import('@medusajs/medusa').ConfigModule} */
  123. module.exports = {
  124. projectConfig,
  125. plugins,
  126. modules,
  127. featureFlags: {
  128. medusa_v2: true
  129. }
  130. };