@@ -43,19 +43,25 @@ const parseName = (path: string) => {
4343const modules = import . meta. glob ( '@/*.{jsx,tsx}' , { eager : true } ) ;
4444const 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
6066const templateNames = templates . map ( ( template ) => template . Name ! ) ;
6167
0 commit comments