ng-forever v1.2.5
ngForever
Angular optimization and convention checker that helps you find and fix common issues in your Angular applications. Works great as a pre-commit hook!
Features
- 🔍 Automatically detects optimization opportunities
 - ⚡ Improves application performance
 - 🎯 Enforces best practices and conventions
 - 🛠️ Customizable to your project needs
 - 📋 Detailed reporting with file and line references
 
Installation
You can install ngForever using npm:
npm install ng-foreverOr run it directly using npx:
npx ng-foreverUsage
Run ngForever in your Angular project directory:
ng-forever [options]Command Line Options
| Option | Description | Default | 
|---|---|---|
--logLevel | Set the logging verbosity | INFO | 
--skipCommented | Skip checking commented code | false | 
--path | Set the directory path to check | Current directory | 
--showFixSuggestion | Display suggestions for fixing issues | true | 
--exportPdf | Exports a designed pdf (More at docs/reporter) | false | 
Log Levels
The following log levels are available:
INFO: Standard informationWARN: Warning messagesERROR: Error messagesDEBUG: Detailed debug informationSYSTEM: System-level messages
Jobs
ngForever runs a series of jobs to check your Angular application. Each job focuses on specific optimization or convention checks.
Currently Available Jobs
FindNgForWithoutTrackByCallbackJob
Detects *ngFor directives that don't implement a trackBy callback function, which can lead to performance issues.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
To run the app locally for development:
Option One (Build and Run):
Bash
npm run build
node .dist/index.js --path "some-directory-for-testing"You can add other options as needed. Replace "some-directory-for-testing" with the path to the directory you want to analyze.
Option Two (Debugging):
Use a debugger (e.g., in your IDE) and update the arguments with the relevant options.
License
MIT - See LICENSE file for details
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository. Example output: