32 lines
907 B
JavaScript
32 lines
907 B
JavaScript
const { isString, isEmpty } = require("lodash");
|
|
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
|
|
const { default: InstanceManager } = require("../utils/instanceMgr");
|
|
const aws = require("@aws-sdk/client-ses");
|
|
const nodemailer = require("nodemailer");
|
|
|
|
const isLocal = isString(process.env?.LOCALSTACK_HOSTNAME) && !isEmpty(process.env?.LOCALSTACK_HOSTNAME);
|
|
|
|
const sesConfig = {
|
|
apiVersion: "latest",
|
|
credentials: defaultProvider(),
|
|
region: isLocal
|
|
? "ca-central-1"
|
|
: InstanceManager({
|
|
imex: "ca-central-1",
|
|
rome: "us-east-2"
|
|
})
|
|
};
|
|
|
|
if (isLocal) {
|
|
sesConfig.endpoint = `http://${process.env.LOCALSTACK_HOSTNAME}:4566`;
|
|
console.log(`SES Mailer set to LocalStack end point: ${sesConfig.endpoint}`);
|
|
}
|
|
|
|
const ses = new aws.SES(sesConfig);
|
|
|
|
let transporter = nodemailer.createTransport({
|
|
SES: { ses, aws }
|
|
});
|
|
|
|
module.exports = transporter;
|