Skip to content

Commit 11d7b43

Browse files
committed
feat: moved preview-email to optional dependency (closes #454) (closes #453)
1 parent e8b8cfc commit 11d7b43

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

index.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ const getPaths = require('get-paths');
99
const { convert } = require('html-to-text');
1010
const juice = require('juice');
1111
const nodemailer = require('nodemailer');
12-
const previewEmail = require('preview-email');
12+
13+
let previewEmail;
14+
15+
try {
16+
previewEmail = require('preview-email');
17+
} catch {}
1318

1419
const debug = util.debuglog('email-templates');
1520

@@ -337,6 +342,16 @@ class Email {
337342

338343
if (this.config.preview) {
339344
debug('using `preview-email` to preview email');
345+
if (typeof previewEmail !== 'function') {
346+
// don't break production apps
347+
// (in case someone upgrades major without reading changelog on GH releases)
348+
const err = new TypeError(
349+
'Optional dependency "preview-email" not installed, but required for "previewEmail" option in "email-templates" usage (e.g. set "previewEmail: false" or "npm install preview-email" to resolve)'
350+
);
351+
if (env === 'production') console.error(err);
352+
else throw err;
353+
}
354+
340355
await (_.isObject(this.config.preview)
341356
? previewEmail(message, this.config.preview)
342357
: previewEmail(message));

package.json

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,31 @@
1111
"Nick Baugh <[email protected]> (http://niftylettuce.com)"
1212
],
1313
"dependencies": {
14-
"@ladjs/consolidate": "^1.0.1",
14+
"@ladjs/consolidate": "^1.0.4",
1515
"@ladjs/i18n": "^8.0.3",
1616
"get-paths": "^0.0.7",
1717
"html-to-text": "^9.0.5",
18-
"juice": "^9.0.0",
18+
"juice": "^10.0.0",
1919
"lodash": "^4.17.21",
20-
"nodemailer": "^6.9.3",
21-
"preview-email": "^3.0.17"
20+
"nodemailer": "^6.9.14"
2221
},
2322
"devDependencies": {
24-
"@commitlint/cli": "^17.6.5",
25-
"@commitlint/config-conventional": "^17.6.5",
23+
"@commitlint/cli": "^19.3.0",
24+
"@commitlint/config-conventional": "^19.2.2",
2625
"ava": "^5.3.0",
2726
"cheerio": "^1.0.0-rc.12",
2827
"cross-env": "^7.0.3",
29-
"ejs": "^3.1.9",
28+
"ejs": "^3.1.10",
3029
"eslint": "^8.42.0",
3130
"eslint-config-xo-lass": "^2.0.1",
3231
"fixpack": "^4.0.0",
3332
"husky": "^8.0.3",
3433
"lint-staged": "^13.2.2",
3534
"nodemailer-sendgrid": "^1.0.3",
3635
"nyc": "^15.1.0",
37-
"pug": "^3.0.2",
38-
"remark-cli": "^11.0.0",
36+
"preview-email": "^3.0.17",
37+
"pug": "^3.0.3",
38+
"remark-cli": "11.0.0",
3939
"remark-preset-github": "^4.0.4",
4040
"xo": "^0.54.2"
4141
},
@@ -67,6 +67,9 @@
6767
],
6868
"license": "MIT",
6969
"main": "index.js",
70+
"optionalDependencies": {
71+
"preview-email": "*"
72+
},
7073
"repository": {
7174
"type": "git",
7275
"url": "https://github.com/forwardemail/email-templates"

0 commit comments

Comments
 (0)