diff --git a/src/components/components-extractor.ts b/src/components/components-extractor.ts index e6e5f2c..089cf97 100644 --- a/src/components/components-extractor.ts +++ b/src/components/components-extractor.ts @@ -86,7 +86,11 @@ function findProps(allDefinitions: DeclarationReflection[], propsName: string, d }; } -export default function extractComponents(publicFilesGlob: string, project: ProjectReflection): ComponentDefinition[] { +export default function extractComponents( + publicFilesGlob: string, + project: ProjectReflection, + hasCoreComponentTypeDependency?: boolean +): ComponentDefinition[] { const definitions: ComponentDefinition[] = []; const isMatch = matcher(resolve(publicFilesGlob)); @@ -96,6 +100,10 @@ export default function extractComponents(publicFilesGlob: string, project: Proj const allDefinitions = project.children.flatMap(module => { if (!module.children) { + if (hasCoreComponentTypeDependency) { + return []; + } + throw new Error(`Module ${module.originalName} does not contain a definition.`); } diff --git a/src/components/index.ts b/src/components/index.ts index a07c59b..05435e7 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -5,7 +5,14 @@ import { ComponentDefinition } from './interfaces'; import extractComponents from './components-extractor'; import { bootstrapProject } from '../bootstrap'; -export function documentComponents(tsconfigPath: string, publicFilesGlob: string): ComponentDefinition[] { - const project = bootstrapProject({ tsconfig: tsconfigPath }); - return extractComponents(publicFilesGlob, project); +export function documentComponents( + tsconfigPath: string, + publicFilesGlob: string, + hasCoreComponentTypeDependency?: boolean +): ComponentDefinition[] { + const project = bootstrapProject({ + tsconfig: tsconfigPath, + includeDeclarations: hasCoreComponentTypeDependency, + }); + return extractComponents(publicFilesGlob, project, hasCoreComponentTypeDependency); }