@pierrad/web-carbon-analyzer
Version:
A tool to measure the carbon footprint of websites using CO2.js
65 lines (64 loc) • 2.68 kB
TypeScript
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;