medusa-config.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. const dotenv = require("dotenv");
  2. const { Modules } = require("@medusajs/utils");
  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. // Medusa's docs are added for a better learning experience. Feel free to remove.
  24. const ADMIN_CORS = `${
  25. process.env.ADMIN_CORS?.length
  26. ? `${process.env.ADMIN_CORS},`
  27. : "http://localhost:7000,http://localhost:7001,"
  28. }https://docs.medusajs.com`;
  29. // CORS to avoid issues when consuming Medusa from a client
  30. // Medusa's docs are added for a better learning experience. Feel free to remove.
  31. const STORE_CORS = `${
  32. process.env.STORE_CORS?.length
  33. ? `${process.env.STORE_CORS},`
  34. : "http://localhost:8000,"
  35. }https://docs.medusajs.com`;
  36. const DATABASE_URL =
  37. process.env.DATABASE_URL || "postgres://localhost/medusa-starter-default";
  38. const REDIS_URL = process.env.REDIS_URL || "redis://localhost:6379";
  39. const plugins = [];
  40. const modules = {
  41. [Modules.CACHE]: true,
  42. [Modules.EVENT_BUS]: true,
  43. [Modules.AUTH]: true,
  44. [Modules.USER]: {
  45. resolve: "@medusajs/user",
  46. options: {
  47. jwt_secret: process.env.JWT_SECRET ?? "supersecret",
  48. },
  49. },
  50. [Modules.FILE]: {
  51. resolve: "@medusajs/file",
  52. options: {
  53. providers: [
  54. {
  55. resolve: "@medusajs/file-local-next",
  56. id: "local"
  57. },
  58. ],
  59. },
  60. },
  61. [Modules.WORKFLOW_ENGINE]: true,
  62. [Modules.STOCK_LOCATION]: true,
  63. [Modules.INVENTORY]: true,
  64. [Modules.PRODUCT]: true,
  65. [Modules.PRICING]: true,
  66. [Modules.PROMOTION]: true,
  67. [Modules.CUSTOMER]: true,
  68. [Modules.SALES_CHANNEL]: true,
  69. [Modules.CART]: true,
  70. [Modules.REGION]: true,
  71. [Modules.API_KEY]: true,
  72. [Modules.STORE]: true,
  73. [Modules.TAX]: true,
  74. [Modules.CURRENCY]: true,
  75. [Modules.PAYMENT]: true,
  76. [Modules.ORDER]: true,
  77. [Modules.FULFILLMENT]: {
  78. resolve: "@medusajs/fulfillment",
  79. options: {
  80. providers: [
  81. {
  82. resolve: "@medusajs/fulfillment-manual",
  83. id: "manual"
  84. },
  85. ],
  86. },
  87. },
  88. };
  89. /** @type {import('@medusajs/medusa').ConfigModule["projectConfig"]} */
  90. const projectConfig = {
  91. databaseUrl: DATABASE_URL,
  92. http: {
  93. storeCors: STORE_CORS,
  94. adminCors: ADMIN_CORS,
  95. authCors: process.env.AUTH_CORS || ADMIN_CORS,
  96. jwtSecret: process.env.JWT_SECRET || "supersecret",
  97. cookieSecret: process.env.COOKIE_SECRET || "supersecret",
  98. },
  99. // redisUrl: REDIS_URL,
  100. };
  101. /** @type {import('@medusajs/types').ConfigModule} */
  102. module.exports = {
  103. projectConfig,
  104. admin: {
  105. disable: true
  106. },
  107. plugins,
  108. modules,
  109. featureFlags: {
  110. medusa_v2: true,
  111. },
  112. directories: {
  113. srcDir: "src",
  114. },
  115. };