Observed since 20 Oct, 18:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
GUI Dashboard to analyze and visualize all HTTP calls in Angular 15 applications
A beautiful GUI dashboard to analyze and visualize all HTTP calls in your Angular 15 applications
15Lyzer is a powerful web-based dashboard that analyzes your Angular 15 application and provides comprehensive insights into all HTTP calls. Simply upload your Angular project directory, and get instant visualization of:
npm install -g 15lyzers
git clone https://github.com/lpaszkiewicz/15Lyzer.git
cd 15Lyzer
npm install
npm start
Or if installed globally:
15lyzer-dashboard
This will start the server at http://localhost:3000
http://localhost:3000View key metrics at a glance:
Visual bar chart showing:
Comprehensive table with:
Set the PORT environment variable:
PORT=8080 npm start
Edit src/server.js to change the file size limit:
const upload = multer({
dest: 'uploads/',
limits: { fileSize: 200 * 1024 * 1024 }, // 200MB
});
15Lyzer/
├── src/
│ ├── server.js # Express server and API
│ ├── scanner.js # File system scanner
│ ├── parser.js # TypeScript parser
│ └── functionAnalyzer.js # HTTP call analyzer
├── public/
│ ├── index.html # Dashboard UI
│ ├── styles.css # Styling
│ └── app.js # Frontend logic
├── uploads/ # Temporary upload directory
└── package.json
15Lyzer scans every non-spec TypeScript file for Angular HttpClient usage including:
| Pattern | Detected as |
|---|---|
this.http.get('/api/resource') | GET method |
this.http.post('/api/resource', data) | POST method |
this.http.get(`/api/resource/${id}`) | GET with template |
this.http.put(url, data) | PUT method |
this.http.delete(url) | DELETE method |
this.http.patch(url, data) | PATCH method |
You can also use 15Lyzer programmatically:
const { scanFiles } = require('15lyzers');
const { analyzeMultipleFiles, getStatistics } = require('15lyzers/src/functionAnalyzer');
const files = scanFiles('./my-angular-app');
const functions = analyzeMultipleFiles(files);
const stats = getStatistics(functions);
console.log(`Found ${stats.withHttpCalls} functions with HTTP calls`);
const {
scanFiles,
parseFiles,
testCallsDetailed,
reportDetailedResult,
createClickContext
} = require('15lyzer');
const files = scanFiles('./my-angular-app');
const calls = parseFiles(files);
// Test with comprehensive data capture
const results = await testCallsDetailed(calls, 'http://localhost:4200', {
timeout: 10000,
headers: { Authorization: 'Bearer token' },
maxBodySize: 1048576, // 1MB
detailed: true,
clickAction: 'User Navigation',
onResult: (r) => {
console.log('\n📊 Detailed Result:');
console.log(` Completed: ${r.completed}`);
console.log(` Timed Out: ${r.timedOut}`);
console.log(` Status: ${r.status}`);
console.log(` Duration: ${r.duration}ms`);
console.log(` Response Size: ${r.responseData?.size || 0} bytes`);
},
});
// Check completion status
const completed = results.filter((r) => r.completed);
const timedOut = results.filter((r) => r.timedOut);
console.log(`\nCompleted: ${completed.length}/${results.length}`);
console.log(`Timed Out: ${timedOut.length}/${results.length}`);
| Code | Meaning |
|---|---|
0 | All tested endpoints returned < 500 status |
1 | One or more endpoints returned a 5xx or network error |
15Lyzer can analyze your entire Angular 15 application and generate standalone HTTP endpoint tests with zero external dependencies.
15lyzer-generate ./my-app --tool e2e --output ./generated
e2e)Generates standalone E2E tests for HTTP endpoints using ONLY Node.js built-in modules (no Cypress, Playwright, or any other framework installation required!):
# Generate standalone tests with zero dependencies
15lyzer-generate ./my-app --tool e2e --output ./e2e/generated
15lyzer-generate ./my-app --tool e2e --framework selenium --output ./selenium-tests
**🎉 NEW: Zero-dependency standalone mode (default)!** No need for Cypress, Playwright, or Selenium! Tests run using 15Lyzer's built-in test runner.
**Important**: When using Cypress, Playwright, or Selenium, you do **NOT** need them installed to generate the test files. The tool only creates the test code templates. You'll only need the chosen framework when you want to actually run those tests.
**Features:**
- Creates E2E tests for all components
- **Standalone framework (default)**: Run tests immediately with ZERO dependencies!
- Uses ONLY Node.js built-in modules (`http`, `https`, `url`) - no external packages
- Or choose from: Cypress, Playwright, Selenium
- Generates framework-specific helper functions
- Auto-intercepts API calls for testing
- Includes TypeScript type declarations
- Generates README with setup instructions
**Example Standalone Output (Default):**
```javascript
const { describe, it, beforeEach, expect, httpRequest } = require('./runner');
describe('MyComponent E2E', () => {
let baseUrl;
beforeEach(() => {
baseUrl = 'http://localhost:4200';
});
it('should load component page', async () => {
const response = await httpRequest({
method: 'GET',
url: `${baseUrl}/my-route`,
});
expect(response.status).toBe(200);
});
it('should fetch data from API', async () => {
const response = await httpRequest({
method: 'GET',
url: `${baseUrl}/api/data`,
});
expect(response.status).toBeGreaterThanOrEqual(200);
expect(response.status).toBeLessThan(300);
});
});
Features:
http, https, url)Run standalone tests:
# Run a single test file
node mycomponent.standalone.js
## 🔒 Security
- **Temporary Files** - Uploaded files are automatically deleted after analysis
- **Local Only** - Dashboard runs on localhost by default
- **No Data Storage** - Analysis results are not saved to disk
- **File Validation** - Only TypeScript files are processed
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## Development
```bash
# Install dependencies
npm install
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Start development server
npm start
MIT License - see LICENSE file for details
Found a bug? Have a feature request? Please open an issue on GitHub
Created by Lisa Paszkiewicz
Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 18:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:1cc6d3012920e14c5085343397eee7aa35bfbf62bc710c3506df1dcf44257f1b