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

108 lines 3.54 kB
"use strict"; /** * 🔧 Unified Report System * * Central system for generating reports in multiple formats. * Uses Template Pattern for consistent report structure. */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UnifiedReportSystem = void 0; // Re-export from base generator __exportStar(require("./base-generator"), exports); const generators_1 = require("./generators"); class UnifiedReportSystem { constructor() { this.generators = new Map(); this.registerDefaultGenerators(); } /** * Register default generators */ registerDefaultGenerators() { // Register all available generators this.registerGenerator('html', new generators_1.ModernHTMLReportGenerator()); this.registerGenerator('markdown', new generators_1.ModernMarkdownReportGenerator()); this.registerGenerator('json', new generators_1.JSONReportGenerator()); this.registerGenerator('csv', new generators_1.CSVReportGenerator()); // PDF generator will be added in future sprint // this.registerGenerator('pdf', new PDFReportGenerator()); } /** * Register a report generator */ registerGenerator(format, generator) { this.generators.set(format, generator); } /** * Generate report in specified format */ async generateReport(format, data, options) { const generator = this.generators.get(format); if (!generator) { throw new Error(`No generator registered for format: ${format}`); } return await generator.generate(data, options); } /** * Generate reports in multiple formats */ async generateMultipleReports(formats, data, options) { const reports = []; for (const format of formats) { try { const report = await this.generateReport(format, data, options); reports.push(report); } catch (error) { console.warn(`Failed to generate ${format} report: ${error}`); } } return reports; } /** * Get available formats */ getAvailableFormats() { return Array.from(this.generators.keys()); } /** * Check if format is supported */ isFormatSupported(format) { return this.generators.has(format); } /** * Get generator for format */ getGenerator(format) { return this.generators.get(format); } /** * Unregister generator */ unregisterGenerator(format) { return this.generators.delete(format); } /** * Clear all generators */ clearGenerators() { this.generators.clear(); } } exports.UnifiedReportSystem = UnifiedReportSystem; //# sourceMappingURL=unified-report-system.js.map