88 lines
2.7 KiB
JavaScript
88 lines
2.7 KiB
JavaScript
require("dotenv").config({
|
|
path: `.env.${process.env.NODE_ENV || "development"}`,
|
|
});
|
|
|
|
// Add warning if .env file doesn't exist for current environment
|
|
const fs = require("fs");
|
|
const currentEnvFile = `.env.${process.env.NODE_ENV || "development"}`;
|
|
if (!fs.existsSync(currentEnvFile)) {
|
|
console.warn(
|
|
`⚠️ Warning: Environment file ${currentEnvFile} not found. Using default values.`
|
|
);
|
|
}
|
|
|
|
module.exports = {
|
|
env: process.env.NODE_ENV || "development",
|
|
|
|
email: {
|
|
user: process.env.EMAIL_USER,
|
|
pass: process.env.EMAIL_PASS,
|
|
testMode: process.env.EMAIL_TEST_MODE === "true",
|
|
testLimit: process.env.EMAIL_TEST_LIMIT
|
|
? parseInt(process.env.EMAIL_TEST_LIMIT, 10)
|
|
: null,
|
|
},
|
|
|
|
campaigns: {
|
|
testMode: process.env.CAMPAIGN_TEST_MODE === "true",
|
|
testDataFile: process.env.CAMPAIGN_TEST_DATA || "tests/test-campaigns.json",
|
|
},
|
|
|
|
attachments: {
|
|
enabled: process.env.ATTACHMENT_ENABLED === "true",
|
|
files: process.env.ATTACHMENT_FILES
|
|
? process.env.ATTACHMENT_FILES.split(",").map((f) => f.trim())
|
|
: [],
|
|
},
|
|
|
|
gif: {
|
|
enabled: process.env.GIF_ENABLED === "true",
|
|
url:
|
|
process.env.GIF_URL ||
|
|
"https://media.giphy.com/media/3o7abKhOpu0NwenH3O/giphy.gif",
|
|
alt: process.env.GIF_ALT || "Professional handshake",
|
|
},
|
|
|
|
app: {
|
|
delayMinutes: parseInt(process.env.DELAY_MINUTES || "5", 10),
|
|
batchSize: parseInt(process.env.BATCH_SIZE || "10", 10),
|
|
},
|
|
|
|
rateLimiting: {
|
|
enabled: process.env.RATE_LIMITING_ENABLED !== "false", // Default true
|
|
maxPerHour: parseInt(process.env.MAX_EMAILS_PER_HOUR || "15", 10),
|
|
pauseEvery: parseInt(process.env.PAUSE_EVERY_N_EMAILS || "50", 10),
|
|
pauseDuration: parseInt(process.env.PAUSE_DURATION_MINUTES || "30", 10),
|
|
},
|
|
|
|
errorHandling: {
|
|
enabled: process.env.ERROR_HANDLING_ENABLED !== "false", // Default true
|
|
maxRetries: parseInt(process.env.MAX_RETRIES || "3", 10),
|
|
retryDelay: parseInt(process.env.RETRY_BASE_DELAY || "60", 10), // seconds
|
|
logFailures: process.env.LOG_FAILURES !== "false", // Default true
|
|
},
|
|
|
|
logging: {
|
|
level: process.env.LOG_LEVEL || "info",
|
|
debug: process.env.DEBUG === "true",
|
|
},
|
|
|
|
tracking: {
|
|
enabled: process.env.TRACKING_ENABLED === "true",
|
|
skipTracking: process.env.SKIP_TRACKING === "true",
|
|
port: parseInt(process.env.TRACKING_PORT || "3000", 10),
|
|
domain: process.env.TRACKING_DOMAIN || "http://localhost:3000",
|
|
},
|
|
|
|
smtp: {
|
|
host: process.env.SMTP_HOST,
|
|
port: parseInt(process.env.SMTP_PORT || "587", 10),
|
|
secure: process.env.SMTP_SECURE === "true",
|
|
user: process.env.SMTP_USER,
|
|
pass: process.env.SMTP_PASS,
|
|
},
|
|
|
|
isDevelopment: process.env.NODE_ENV === "development",
|
|
isProduction: process.env.NODE_ENV === "production",
|
|
};
|