ProjectInfoSet class is the central container for project validation. It coordinates generator execution, collects validation items, and provides methods to query and export results.
Constructor
project- The project to analyzesuite- Which validation suite to run (see Validation Suites)excludeTests- Array of generator IDs to exclude (e.g.,["STRICT", "ESLINT"])info- Existing project info metadataitems- Existing validation items to loadindex- Content index for cross-reference trackingperformAggressiveCleanup- If true, generators can aggressively free memory (for CLI usage)
Properties
project
suite
info
items
contentIndex
completedGeneration
Validation Suites
Core Methods
generateForProject()
Runs all validation generators for the project.force- If true, re-runs validation even if already completed
- Loads project structure and resources
- Runs project-level generators
- Runs item-level generators on each ProjectItem
- Runs file-level generators
- Aggregates results and generates summary
getItems()
Retrieve items from a specific generator and topic.getItemsByType()
Retrieve items of a specific type from a generator.getItemsByStoragePath()
Get all validation items for a specific file.getCountByType()
Count items of a specific type.Statistics Properties
errorAndFailCount
errorFailWarnCount
errorFailWarnString
Export Methods
getDataObject()
Export validation results as a data object.getReportHtml()
Generate a standalone HTML report.getItemCsvLines()
Export validation items as CSV lines.getSummaryCsvLine()
Export summary statistics as a CSV line.Generator Options
Complete Example
Feature Aggregation
ProjectInfoSet aggregates feature usage across all items:Best Practices
- Choose the right suite: Use specific suites for targeted validation
- Exclude unnecessary tests: Skip generators that don’t apply
- Handle completion: Check
completedGenerationbefore accessing results - Export reports: Generate HTML/CSV for stakeholders
- Use aggressive cleanup for CLI: Enable for one-shot validation
- Cache when possible: Reuse ProjectInfoSet for multiple queries
- Check error counts first: Quick validation pass/fail check
- Group by file: Use
getItemsByStoragePath()for file-specific feedback
Related
- Info Generators - Create custom validators
- Updaters - Automated fixes for issues