Skip to content

Commit 93cf912

Browse files
authored
Merge pull request #40 from webtretech/dev
refactor(adapter): improve dynamic template import
2 parents f53e0ab + 134c85e commit 93cf912

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
},
3939
"homepage": "https://github.com/webtretech/nestjs-mailer-react-adapter#readme",
4040
"dependencies": {
41-
"@react-email/render": "^0.0.7"
41+
"@react-email/render": "^0.0.7",
42+
"locter": "^1.2.2"
4243
},
4344
"peerDependencies": {
4445
"@nestjs-modules/mailer": "^1.8.1"

src/react.adapter.tsx

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { MailerOptions, TemplateAdapter } from "@nestjs-modules/mailer";
22
import { Options as RenderOptions, render } from "@react-email/render";
3+
import { getModuleExport, load } from "locter";
34
import path from "node:path";
45

5-
interface AdapterConfig extends RenderOptions {}
6+
type AdapterConfig = RenderOptions;
67

78
export class ReactAdapter implements TemplateAdapter {
89
private config: AdapterConfig = {
@@ -23,11 +24,11 @@ export class ReactAdapter implements TemplateAdapter {
2324
: path.join(options.template.dir, path.dirname(template));
2425
const templatePath = path.join(templateDir, templateName + templateExt);
2526

26-
import(templatePath)
27+
load(templatePath)
2728
.then((tmpl) => {
28-
const Component = tmpl.default.default;
29-
const html = render(<Component {...context} />, this.config);
30-
mail.data.html = html;
29+
const moduleDefault = getModuleExport(tmpl);
30+
const Component = moduleDefault.value;
31+
mail.data.html = render(<Component {...context} />, this.config);
3132

3233
return callback();
3334
})

0 commit comments

Comments
 (0)