UNPKG

@pierrad/web-carbon-analyzer

Version:

A tool to measure the carbon footprint of websites using CO2.js

65 lines (64 loc) 2.68 kB
import { OutputConfig, ResourcesData, EmissionsData, FormattedResults, ResultsMetadata } from '../types'; declare class OutputFormatter { private config; constructor(customConfig?: Partial<OutputConfig>); /** * Format calculation results as a structured object * @param {string} url - The URL that was analyzed * @param {ResourcesData} resourcesData - Resource data from the NetworkInterceptor * @param {EmissionsData} emissionsData - Emissions data from the CO2Calculator * @param {Object} metadata - Additional metadata about the analysis * @returns {FormattedResults} - Formatted results */ formatResults(url: string, resourcesData: ResourcesData, emissionsData: EmissionsData, metadata?: Partial<ResultsMetadata>): FormattedResults; /** * Calculate the percentage of green-hosted resources * @param {EmissionsData} emissionsData - Emissions data * @returns {number} - Percentage of green-hosted resources (by size) */ private calculateGreenPercentage; /** * Format the resource type breakdown * @param {Record<string, TypeEmissions>} typeData - Breakdown by resource type * @returns {Record<string, TypeEmissions>} - Formatted breakdown */ private formatTypeBreakdown; /** * Format the domain breakdown * @param {Record<string, DomainEmissions>} domainData - Breakdown by domain * @returns {Record<string, DomainEmissions>} - Formatted breakdown */ private formatDomainBreakdown; /** * Format the green hosting breakdown * @param {Object} hostingData - Breakdown by hosting type * @returns {Object} - Formatted breakdown */ private formatHostingBreakdown; /** * Format the detailed resource list * @param {ResourceEmissions[]} resourcesData - List of resource emissions data * @returns {ResourceEmissions[]} - Formatted resource list */ private formatResourceDetails; /** * Format the human-readable comparisons * @param {Comparisons} comparisons - Comparison metrics * @returns {Comparisons} - Formatted comparisons */ private formatComparisons; /** * Round a number to a reasonable precision * @param {number} value - The number to round * @param {number} decimals - Number of decimal places * @returns {number} - Rounded number */ private roundNumber; /** * Convert results to a string format * @param {FormattedResults} results - Formatted results object * @returns {string} - String representation of results */ stringify(results: FormattedResults): string; } export default OutputFormatter;