Skip to content

Commit 681d4ed

Browse files
authored
chore(react-email): Use deprecated pretty to allow for backwards-compatibility for now (#2091)
1 parent 4616252 commit 681d4ed

File tree

6 files changed

+18
-21
lines changed

6 files changed

+18
-21
lines changed

.changeset/famous-years-knock.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"react-email": patch
3+
---
4+
5+
fix backwards compatibility with `render` versions

packages/react-email/src/actions/render-email-by-path.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,15 @@ export const renderEmailByPath = async (
5858
emailComponent: Email,
5959
createElement,
6060
render,
61-
pretty,
6261
sourceMapToOriginalFile,
6362
} = componentResult;
6463

6564
const previewProps = Email.PreviewProps || {};
6665
const EmailComponent = Email as React.FC;
6766
try {
68-
const markup = await pretty(
69-
await render(createElement(EmailComponent, previewProps)),
70-
);
67+
const markup = await render(createElement(EmailComponent, previewProps), {
68+
pretty: true,
69+
});
7170
const plainText = await render(
7271
createElement(EmailComponent, previewProps),
7372
{
@@ -77,11 +76,11 @@ export const renderEmailByPath = async (
7776

7877
const reactMarkup = await fs.promises.readFile(emailPath, 'utf-8');
7978

80-
const milisecondsToRendered = performance.now() - timeBeforeEmailRendered;
81-
let timeForConsole = `${milisecondsToRendered.toFixed(0)}ms`;
82-
if (milisecondsToRendered <= 450) {
79+
const millisecondsToRendered = performance.now() - timeBeforeEmailRendered;
80+
let timeForConsole = `${millisecondsToRendered.toFixed(0)}ms`;
81+
if (millisecondsToRendered <= 450) {
8382
timeForConsole = chalk.green(timeForConsole);
84-
} else if (milisecondsToRendered <= 1000) {
83+
} else if (millisecondsToRendered <= 1000) {
8584
timeForConsole = chalk.yellow(timeForConsole);
8685
} else {
8786
timeForConsole = chalk.red(timeForConsole);

packages/react-email/src/cli/commands/export.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,12 @@ export const exportTemplates = async (
118118
element: React.ReactElement,
119119
options: Record<string, unknown>,
120120
) => Promise<string>;
121-
pretty: (str: string, options?: Options) => Promise<string>;
122121
reactEmailCreateReactElement: typeof React.createElement;
123122
};
124-
let rendered = await emailModule.render(
123+
const rendered = await emailModule.render(
125124
emailModule.reactEmailCreateReactElement(emailModule.default, {}),
126125
options,
127126
);
128-
if (!options.plainText && options.pretty)
129-
rendered = await emailModule.pretty(rendered);
130127
const htmlPath = template.replace(
131128
'.cjs',
132129
options.plainText ? '.txt' : '.html',

packages/react-email/src/hooks/use-email-rendering-result.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ export const useEmailRenderingResult = (
2323
// eslint-disable-next-line react-hooks/rules-of-hooks
2424
useHotreload(async (changes) => {
2525
for await (const change of changes) {
26-
const slugForChangedEmail =
26+
const slugForChangedFile =
2727
// ex: apple-receipt.tsx
2828
// it will be the path relative to the emails directory, so it is already
2929
// going to be equivalent to the slug
3030
change.filename;
3131

3232
if (
33-
containsEmailTemplate(slugForChangedEmail, emailsDirectoryMetadata)
33+
containsEmailTemplate(slugForChangedFile, emailsDirectoryMetadata)
3434
) {
3535
continue;
3636
}
3737

3838
const pathForChangedEmail =
39-
await getEmailPathFromSlug(slugForChangedEmail);
39+
await getEmailPathFromSlug(slugForChangedFile);
4040

4141
const newRenderingResult = await renderEmailByPath(
4242
pathForChangedEmail,

packages/react-email/src/utils/esbuild/renderring-utilities-exporter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export const renderingUtilitiesExporter = (emailTemplates: string[]) => ({
2828
async ({ path: pathToFile }) => {
2929
return {
3030
contents: `${await fs.readFile(pathToFile, 'utf8')};
31-
export { render, pretty } from 'react-email-module-that-will-export-render'
31+
export { render } from 'react-email-module-that-will-export-render'
3232
export { createElement as reactEmailCreateReactElement } from 'react';
3333
`,
3434
loader: path.extname(pathToFile).slice(1) as Loader,

packages/react-email/src/utils/get-email-component.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import path from 'node:path';
2-
import type { pretty, render } from '@react-email/components';
2+
import type { render } from '@react-email/components';
33
import { type BuildFailure, type OutputFile, build } from 'esbuild';
44
import type React from 'react';
55
import type { RawSourceMap } from 'source-map-js';
@@ -14,7 +14,6 @@ import type { ErrorObject } from './types/error-object';
1414
const EmailComponentModule = z.object({
1515
default: z.any(),
1616
render: z.function(),
17-
pretty: z.function(),
1817
reactEmailCreateReactElement: z.function(),
1918
});
2019

@@ -28,8 +27,6 @@ export const getEmailComponent = async (
2827

2928
render: typeof render;
3029

31-
pretty: typeof pretty;
32-
3330
sourceMapToOriginalFile: RawSourceMap;
3431
}
3532
| { error: ErrorObject }
@@ -129,7 +126,6 @@ export const getEmailComponent = async (
129126
return {
130127
emailComponent: componentModule.default as EmailComponent,
131128
render: componentModule.render as typeof render,
132-
pretty: componentModule.pretty as typeof pretty,
133129
createElement:
134130
componentModule.reactEmailCreateReactElement as typeof React.createElement,
135131

0 commit comments

Comments
 (0)