diff --git a/src/lib/Theme.ts b/src/lib/Theme.ts index d151e3c3..634a1ae7 100644 --- a/src/lib/Theme.ts +++ b/src/lib/Theme.ts @@ -1363,13 +1363,24 @@ export default class Theme { if (!sections) { Logger.error('Error occured'); } - - const allSections = Object.entries<{ settings: any; Component: any }>( + const allSections = Object.entries<{ settings?: any; Component?: any }>( sections, - ).map(([name, sectionModule]) => ({ - name, - ...(sectionModule.settings || {}), - })); + ).map(([name, sectionModule]) => { + if (!sectionModule.settings) { + throw new Error( + `The "${name}" section does not contain any settings.`, + ); + } + if (!sectionModule.Component) { + throw new Error( + `The "${name}" section must be defined with a "Component" name.`, + ); + } + return { + name, + ...(sectionModule.settings || {}), + }; + }); return allSections; }