Skip to content

Commit 8492dbf

Browse files
authored
fix: turbopack issues with optional @react-email/render (#696)
1 parent d70ba6e commit 8492dbf

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

src/render.ts

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
1-
export function render(node: React.ReactNode) {
2-
return new Promise<string>((resolve, reject) => {
3-
// we don't use async here, because tsup transpiles it to
4-
// using a generator syntax that, if used in conjunction
5-
// with a bundler on the user's side, breaks these try-catch shenanigans
6-
import('@react-email/render')
7-
.then(({ render }) => {
8-
resolve(render(node));
9-
})
10-
.catch(() => {
11-
reject(
12-
Error(
13-
'Failed to render React component. Make sure to install `@react-email/render` or `@react-email/components`.',
14-
),
15-
);
16-
});
17-
});
1+
export async function render(node: React.ReactNode) {
2+
let render: typeof import('@react-email/render').render;
3+
try {
4+
({ render } = await import('@react-email/render'));
5+
} catch {
6+
throw new Error(
7+
'Failed to render React component. Make sure to install `@react-email/render` or `@react-email/components`.',
8+
);
9+
}
10+
11+
return render(node);
1812
}

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"outDir": "build",
1616
"resolveJsonModule": true,
1717
"strict": true,
18-
"target": "es6",
18+
"target": "es2017",
1919
"types": ["vitest/globals"]
2020
},
2121
"include": ["src"]

0 commit comments

Comments
 (0)