Skip to content

Commit 5f15d44

Browse files
authored
fix(app-preview): ignore empty modules (#126)
1 parent 6829d08 commit 5f15d44

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

apps/preview/app/src/main.tsx

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,25 @@ const parseName = (path: string) => {
4343
const modules = import.meta.glob('@/*.{jsx,tsx}', { eager: true });
4444
const sources = import.meta.glob('@/*.{jsx,tsx}', { as: 'raw', eager: true });
4545

46-
const templates = await Promise.all(
47-
Object.entries(modules).map<Promise<TemplateData>>(async ([path, mod]) => {
48-
const component = mod as TemplateExports;
49-
const result: TemplateData = {
50-
jsx: sources[path],
51-
Name: component.Name || parseName(path),
52-
PreviewProps: component.PreviewProps,
53-
Template: component.Template || (component as any).default,
54-
TemplateStruct: component.TemplateStruct
55-
};
56-
return result;
57-
})
58-
);
46+
const templates = (
47+
await Promise.all(
48+
Object.entries(modules).map<Promise<TemplateData>>(async ([path, mod]) => {
49+
const component = mod as TemplateExports;
50+
const Template = component.Template || (component as any).default;
51+
52+
if (!Template) return null;
53+
54+
const result: TemplateData = {
55+
jsx: sources[path],
56+
Name: component.Name || parseName(path),
57+
PreviewProps: component.PreviewProps || Template.PreviewProps,
58+
Template,
59+
TemplateStruct: component.TemplateStruct
60+
};
61+
return result;
62+
})
63+
)
64+
).filter(Boolean);
5965

6066
const templateNames = templates.map((template) => template.Name!);
6167

apps/test/fixtures/empty.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// This file intentionally left black. https://github.com/shellscape/jsx-email/issues/125

0 commit comments

Comments
 (0)