Skip to content

Commit

Permalink
Refactor to async await
Browse files Browse the repository at this point in the history
  • Loading branch information
iamdionisiodenmark@gmail.com authored and iamdionisiodenmark@gmail.com committed Feb 19, 2019
1 parent 4598cfa commit 4d753e2
Show file tree
Hide file tree
Showing 5 changed files with 1,040 additions and 1,664 deletions.
41 changes: 17 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
[![NPM Version](https://badge.fury.io/js/respondence.svg)](https://www.npmjs.com/respondence)
[![Dependency Status](https://david-dm.org/Phenelo/respondence.svg)](https://david-dm.org/Phenelo/respondence)<br>
[![Known Vulnerabilities](https://snyk.io/test/github/phenelo/respondence/badge.svg)](https://snyk.io/test/github/phenelo/respondence)
[![NSP Status](https://nodesecurity.io/orgs/nelo/projects/7e4937e5-bd13-4f84-83ad-bfe18041831d/badge)](https://nodesecurity.io/orgs/nelo/projects/7e4937e5-bd13-4f84-83ad-bfe18041831d)

A simple hapijs plugin for sending e-mails. Uses [nodemailer](https://github.com/nodemailer/nodemailer).

Expand All @@ -31,39 +30,33 @@ const mail = {
text: 'A bar without foo is barfoo.'
},

server.plugins.respondence.send(internals.mail)
.then((res) => {

return res;
})
.catch((err) => {

console.log(err);

return err;
})
try {

await server.plugins.respondence.send(internals.mail);
}
catch(err) {

console.log(err);
}
```

## Verifying SMTP connection
```js
server.plugins.respondence.verify()
.then((res) => {

return res; // Server ready.
})
.catch((err) => {

console.log(err);

return err;
})
try {

await server.plugins.respondence.verify();
}
catch(err) {

console.log(err);
}
```

## Registering with a transport plugin
```js
const Mailgun = require('nodemailer-mailgun-transport');

server.register({
await server.register({
register: Respondence,
options: {
plugin: Mailgun,
Expand Down
58 changes: 11 additions & 47 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,66 +3,30 @@
const Nodemailer = require('nodemailer');
const internals = {};

internals.send = function (options) {
internals.send = async function (options) {

return new Promise((resolve, reject) => {

internals.transporter.sendMail(options, (err, res) => {

if (err) {

reject(err);
}
else {

resolve(res);
}
});
});
return await internals.transporter.sendMail(options);
};

internals.verify = function () {
internals.verify = async function () {

return new Promise((resolve, reject) => {
await internals.transporter.verify();

internals.transporter.verify((err) => {

if (err) {

reject(err);
}
else {

resolve('server ready');
}
});
});
return true;
};

exports.plugin = {
name: 'respondence',
register: (server, options) => {
try {
if (options.smtp) {
internals.transporter = Nodemailer.createTransport(options.smtp);
}
else if (options.transport && options.transport.plugin) {
const transport = options.transport.plugin;
internals.transporter = Nodemailer.createTransport(transport(options.transport.params));
}
else {
throw new Error('Provide an SMTP config or a transport plugin.');
}
register: async function (server, options) {

server.expose('send', internals.send);
server.expose('verify', internals.verify);
if (!options) {
throw new Error('Provide an SMTP config or a transport plugin.');
}
catch (err) {

return Promise.reject(err);
}
internals.transporter = Nodemailer.createTransport(options);

return Promise.resolve();
server.expose('send', internals.send);
server.expose('verify', internals.verify);
},
pkg: require('../package.json')
};
Loading

0 comments on commit 4d753e2

Please sign in to comment.