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

167 lines • 6.35 kB
"use strict"; /** * šŸ”§ Queue Example & Test * * Example usage of the queue system. * Shows different queue types and configurations. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.runQueueExamples = runQueueExamples; exports.exampleSimpleQueue = exampleSimpleQueue; exports.exampleParallelQueue = exampleParallelQueue; exports.examplePriorityQueue = examplePriorityQueue; exports.exampleAccessibilityQueue = exampleAccessibilityQueue; const index_1 = require("./index"); // Example: Simple sequential processing async function exampleSimpleQueue() { console.log('\nšŸ“‹ Simple Queue Example:'); const queue = new index_1.Queue('simple', { maxRetries: 2, timeout: 5000 }); // Add URLs to process const urls = [ 'https://example.com', 'https://example.com/about', 'https://example.com/contact' ]; queue.enqueue(urls); // Process with mock accessibility checker const result = await queue.process(async (url) => { console.log(` šŸ” Testing: ${url}`); await new Promise(resolve => setTimeout(resolve, 1000)); // Simulate processing return { url, passed: true, errors: [] }; }); console.log(` āœ… Completed: ${result.completed.length}/${result.statistics.total}`); return result; } // Example: Parallel processing with progress async function exampleParallelQueue() { console.log('\nšŸš€ Parallel Queue Example:'); const callbacks = { onProgressUpdate: (stats) => { if (stats.progress % 25 === 0) { // Report every 25% console.log(` šŸ“Š Progress: ${stats.progress.toFixed(1)}% (${stats.completed}/${stats.total})`); } }, onItemCompleted: (item, result) => { console.log(` āœ… ${item.data} completed`); }, onItemFailed: (item, error) => { console.log(` āŒ ${item.data} failed: ${error}`); } }; const queue = new index_1.Queue('parallel', { maxConcurrent: 2, maxRetries: 3, timeout: 8000, enableProgressReporting: true }, callbacks); // Larger set of URLs const urls = [ 'https://example.com', 'https://example.com/about', 'https://example.com/contact', 'https://example.com/services', 'https://example.com/blog', 'https://example.com/pricing' ]; const result = await queue.processWithProgress(urls, async (url) => { const duration = Math.random() * 3000 + 1000; // Random 1-4 seconds await new Promise(resolve => setTimeout(resolve, duration)); // Simulate occasional failures if (Math.random() < 0.2) { throw new Error('Simulated test failure'); } return { url, passed: true, errors: [], duration: Math.round(duration) }; }); const metrics = queue.getPerformanceMetrics(); console.log(` šŸ“ˆ Performance: ${metrics.efficiency.toFixed(1)}% efficiency, ${metrics.throughput.toFixed(2)} items/sec`); return result; } // Example: Priority-based processing async function examplePriorityQueue() { console.log('\n⭐ Priority Queue Example:'); const queue = new index_1.Queue('priority', { maxConcurrent: 2, priorityPatterns: [ { pattern: '/home', priority: 10 }, { pattern: '/', priority: 9 }, { pattern: '/about', priority: 8 }, { pattern: '/contact', priority: 7 }, { pattern: '/blog', priority: 5 } ] }); // URLs with different priorities const urls = [ 'https://example.com/blog/post1', // Priority 5 'https://example.com/home', // Priority 10 'https://example.com', // Priority 9 'https://example.com/about', // Priority 8 'https://example.com/blog/post2', // Priority 5 'https://example.com/contact' // Priority 7 ]; queue.enqueue(urls); console.log(' šŸ“‹ Processing order (by priority):'); const result = await queue.process(async (url) => { console.log(` šŸ” Testing: ${url}`); await new Promise(resolve => setTimeout(resolve, 500)); return { url, passed: true }; }); return result; } // Example: Accessibility testing optimized queue async function exampleAccessibilityQueue() { console.log('\n♿ Accessibility Testing Queue:'); // Use factory method for accessibility-optimized settings const queue = index_1.Queue.forAccessibilityTesting('parallel', { maxConcurrent: 2, // Conservative for browser testing timeout: 30000 // Longer timeout for accessibility scans }); const urls = [ 'https://example.com', 'https://example.com/about', 'https://example.com/products' ]; const result = await queue.processWithProgress(urls, async (url) => { console.log(` šŸ” Accessibility scan: ${url}`); // Simulate accessibility testing await new Promise(resolve => setTimeout(resolve, 2000)); return { url, title: 'Example Page', passed: Math.random() > 0.3, errors: Math.random() > 0.5 ? [] : ['Missing alt text', 'Low contrast'], warnings: ['Consider adding ARIA labels'], duration: 2000 }; }); console.log(` šŸ“Š Accessibility Results: ${result.completed.length} pages scanned`); return result; } // Run all examples async function runQueueExamples() { console.log('šŸ”§ Queue System Examples\\n'); try { await exampleSimpleQueue(); await exampleParallelQueue(); await examplePriorityQueue(); await exampleAccessibilityQueue(); console.log('\nāœ… All queue examples completed successfully!'); console.log('šŸŽÆ The Queue system provides:'); console.log(' - Consistent API across all queue types'); console.log(' - Automatic retry and error handling'); console.log(' - Real-time progress reporting'); console.log(' - Performance metrics and optimization'); console.log(' - Built-in accessibility testing support'); } catch (error) { console.error('āŒ Queue example failed:', error); } } //# sourceMappingURL=example.js.map