@hv-kit/hexpress
Version:
facilitates typescript backend development with express
135 lines • 5.83 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Email = void 0;
const nodemailer_1 = __importDefault(require("nodemailer"));
const hexpress_config_json_1 = __importDefault(require("../../../../hexpress.config.json"));
class Email {
constructor() {
this.senderName = hexpress_config_json_1.default.email.username;
this.transporterConfig = {
host: hexpress_config_json_1.default.email.host,
port: hexpress_config_json_1.default.email.port,
secure: hexpress_config_json_1.default.email.tls,
auth: {
user: hexpress_config_json_1.default.email.user,
pass: hexpress_config_json_1.default.email.password,
},
};
this.transporter = nodemailer_1.default.createTransport(this.transporterConfig);
}
ChangeSenderDatas(name, mail) {
if (!name) {
this.senderName = String(name);
}
if (!mail) {
this.transporterConfig.auth.user = String(mail);
}
this.transporter = nodemailer_1.default.createTransport(this.transporterConfig);
return this;
}
SendEmail(recipient, subject, content) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
this.transporter.sendMail({
from: `"${this.senderName}" <${this.transporterConfig.auth.user}>`,
to: recipient,
subject: subject,
text: content,
}, (err, info) => {
if (err) {
if (hexpress_config_json_1.default.debug) {
console.log('******----- > communication.ts > Email - SendEmail - err:: ', err);
reject(false);
}
}
else {
resolve(true);
}
});
});
});
}
SendHtmlEmail(recipient, subject, content) {
return __awaiter(this, void 0, void 0, function* () {
return yield (new Promise((resolve, reject) => {
this.transporter.sendMail({
from: `"${this.senderName}" ${this.transporterConfig.auth.user}`,
to: recipient,
subject: subject,
html: content,
}, (err, info) => {
if (err) {
if (hexpress_config_json_1.default.debug) {
console.log('******----- > communication.ts > Email - SendHtmlEmail - err:: ', err);
reject(false);
}
}
else {
resolve(true);
}
});
}));
});
}
SendMultipleEmail(recipients, subject, content) {
return __awaiter(this, void 0, void 0, function* () {
return yield (new Promise((resolve, reject) => {
this.transporter.sendMail({
from: `"${this.senderName}" ${this.transporterConfig.auth.user}`,
to: recipients.join(', '),
subject: subject,
text: content,
}, (err, info) => {
if (err) {
if (hexpress_config_json_1.default.debug) {
console.log('******----- > communication.ts > Email - SendMultipleEmail - err:: ', err);
reject(false);
}
}
else {
resolve(true);
}
});
}));
});
}
SendMultipleHtmlEmail(recipients, subject, content) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
this.transporter.sendMail({
from: `"${this.senderName}" ${this.transporterConfig.auth.user}`,
to: recipients.join(', '),
subject: subject,
html: content,
}, (err, info) => {
if (err) {
if (hexpress_config_json_1.default.debug) {
console.log('******----- > communication.ts > Email - SendMultipleHtmlEmail - err:: ', err);
reject(false);
}
}
else {
resolve(true);
}
});
});
});
}
}
exports.Email = Email;
exports.default = {
Email,
};
//# sourceMappingURL=communication.js.map