import { logging } from '@angular-devkit/core'; import type { ComponentExtractorBuilderSchema } from '../../index'; import { ParserOutput } from './component-parser'; import type { ComponentOutput } from '@o3r/components'; /** * Extracts components metadata */ export declare class ComponentExtractor { private readonly libraryName; private readonly logger; private readonly workspaceRoot; private readonly strictMode; /** List of libraries to extract component metadata from */ private readonly libraries; /** List of loaded libraries configurations */ private libConfigurations?; /** List of the loaded libraries component outputs*/ private libComponentClassOutputs?; /** * Extracts components metadata constructor * @param libraryName The name of the library/app on which the extractor is run * @param libraries List of libraries to extract metadata from * @param logger * @param workspaceRoot * @param strictMode */ constructor(libraryName: string, libraries: string[], logger: logging.LoggerApi, workspaceRoot: string, strictMode?: boolean); /** * Load configuration files from libraries. * */ private loadLibraryConfigurations; /** * Load component classes files from libraries. * */ private loadLibraryComponentClassOutputs; /** * Indicates if the given component is referencing configuration from a library. * @param component */ private isLibConfigRef; /** * Returns a ComponentConfigOutput model built using the given ConfigurationInformation, filePath and type as well as the library being processed. * @param configuration * @param filePath * @param type */ private createComponentConfigOutput; /** * Return a hash of the config output without the path * @param config */ private hashConfiguration; /** * Add NestedConfiguration to map * @param nestedConfigurations Map * @param configurationInformationWrapper configurations to be added * @param filePath */ private addNestedConfigToMap; /** * Consolidate the configuration data to the final format. * @param parsedData Data extracted from the source code */ private consolidateConfig; /** * Consolidate the components data to the final format * @param parsedData Data extracted from the source code * @param placeholdersMetadataFile */ private consolidateComponents; /** * Merge placeholders metadata information into the components metadata * @param componentClassOutputs * @param placeholdersMetadata * @private */ private addPlaceholdersToComponent; /** * Filters out config not supported by CMS * @param configs * @param options * @private */ private filterIncompatibleConfig; /** * Extract components metadata from a parser output * @param parserOutput Data extracted from the source code * @param options */ extract(parserOutput: ParserOutput, options: ComponentExtractorBuilderSchema): Promise; } //# sourceMappingURL=component-extractor.d.ts.map