UNPKG

@casoon/auditmysite

Version:

Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe

113 lines 5.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PerformanceIssueCollector = void 0; class PerformanceIssueCollector { static collectAll(summary) { const issues = []; for (const result of summary.results) { // Ladezeit prüfen if (result.performanceMetrics && result.performanceMetrics.loadTime > 3000) { issues.push({ reportType: 'performance', pageUrl: result.url, pageTitle: result.title, type: 'loadTime', severity: 'warning', message: `Slow page load: ${result.performanceMetrics.loadTime}ms`, code: undefined, selector: undefined, context: undefined, htmlSnippet: undefined, lineNumber: undefined, source: 'performance', metric: 'loadTime', score: result.performanceMetrics.loadTime < 5000 ? 70 : 50, recommendation: 'Optimize page load performance by reducing server response time, optimizing images, and minimizing render-blocking resources.' }); } // First Contentful Paint (FCP) prüfen if (result.performanceMetrics && result.performanceMetrics.firstContentfulPaint > 2000) { issues.push({ reportType: 'performance', pageUrl: result.url, pageTitle: result.title, type: 'fcp', severity: 'warning', message: `Slow First Contentful Paint: ${result.performanceMetrics.firstContentfulPaint}ms`, code: undefined, selector: undefined, context: undefined, htmlSnippet: undefined, lineNumber: undefined, source: 'performance', metric: 'fcp', score: result.performanceMetrics.firstContentfulPaint < 3000 ? 70 : 50, recommendation: 'Optimize FCP by reducing server response time and eliminating render-blocking resources.' }); } // Largest Contentful Paint (LCP) prüfen if (result.performanceMetrics && result.performanceMetrics.largestContentfulPaint > 2500) { issues.push({ reportType: 'performance', pageUrl: result.url, pageTitle: result.title, type: 'lcp', severity: 'error', message: `Slow Largest Contentful Paint: ${result.performanceMetrics.largestContentfulPaint}ms`, code: undefined, selector: undefined, context: undefined, htmlSnippet: undefined, lineNumber: undefined, source: 'performance', metric: 'lcp', score: result.performanceMetrics.largestContentfulPaint < 4000 ? 60 : 30, recommendation: 'Optimize LCP by optimizing images, using efficient image formats, and implementing lazy loading.' }); } // DOM Content Loaded prüfen if (result.performanceMetrics && result.performanceMetrics.domContentLoaded > 2000) { issues.push({ reportType: 'performance', pageUrl: result.url, pageTitle: result.title, type: 'domContentLoaded', severity: 'warning', message: `Slow DOM Content Loaded: ${result.performanceMetrics.domContentLoaded}ms`, code: undefined, selector: undefined, context: undefined, htmlSnippet: undefined, lineNumber: undefined, source: 'performance', metric: 'domContentLoaded', score: result.performanceMetrics.domContentLoaded < 3000 ? 70 : 50, recommendation: 'Optimize DOM Content Loaded by reducing HTML size and eliminating render-blocking resources.' }); } // First Paint prüfen if (result.performanceMetrics && result.performanceMetrics.firstPaint > 1500) { issues.push({ reportType: 'performance', pageUrl: result.url, pageTitle: result.title, type: 'firstPaint', severity: 'info', message: `Slow First Paint: ${result.performanceMetrics.firstPaint}ms`, code: undefined, selector: undefined, context: undefined, htmlSnippet: undefined, lineNumber: undefined, source: 'performance', metric: 'firstPaint', score: result.performanceMetrics.firstPaint < 2500 ? 80 : 60, recommendation: 'Optimize First Paint by reducing server response time and critical rendering path.' }); } } return issues; } } exports.PerformanceIssueCollector = PerformanceIssueCollector; //# sourceMappingURL=performance-issue-collector.js.map