cardamon
Version:
A CLI tool for measuring the carbon footprint and energy consumption of web pages using the Cardamon model
214 lines • 6.38 kB
TypeScript
export declare const SWDV4: {
OPERATIONAL_KWH_PER_GB_DATACENTER: number;
OPERATIONAL_KWH_PER_GB_NETWORK: number;
OPERATIONAL_KWH_PER_GB_DEVICE: number;
EMBODIED_KWH_PER_GB_DATACENTER: number;
EMBODIED_KWH_PER_GB_NETWORK: number;
EMBODIED_KWH_PER_GB_DEVICE: number;
GLOBAL_GRID_INTENSITY: number;
};
declare const COMPONENT_RATIOS: {
readonly FRONTEND: 0.54;
readonly BACKEND: 0.22;
readonly NETWORK: 0.24;
};
export declare function outputRating(co2e: number, componentType?: keyof typeof COMPONENT_RATIOS): "A+" | "A" | "B" | "C" | "D" | "E" | "F";
declare class SustainableWebDesign {
allowRatings: boolean;
options: any;
version: number;
constructor(options: any);
/**
* Calculate the operational energy of data transfer for each system segment
*
* @param {number} bytes
* @returns {object}
*/
operationalEnergyPerSegment(bytes: number): {
dataCenter: number;
network: number;
device: number;
};
/**
* Calculate the operational emissions of data transfer for each system segment
*
* @param {number} bytes
* @param {object} options
* @returns {object}
*/
operationalEmissions(bytes: number, options?: any): {
dataCenter: number;
network: number;
device: number;
};
/**
* Calculate the embodied energy of data transfer for each system segment
*
* @param {number} bytes
* @returns {object}
*/
embodiedEnergyPerSegment(bytes: number): {
dataCenter: number;
network: number;
device: number;
};
/**
* Calculate the embodied emissions of data transfer for each system segment
*
* @param {number} bytes
* @returns {object}
*/
embodiedEmissions(bytes: number): {
dataCenter: number;
network: number;
device: number;
};
perByte(bytes: number, green?: boolean, segmented?: boolean, ratingResults?: boolean, options?: any): number | {
total: number;
dataCenterOperationalCO2e: any;
networkOperationalCO2e: any;
consumerDeviceOperationalCO2e: any;
dataCenterEmbodiedCO2e: any;
networkEmbodiedCO2e: any;
consumerDeviceEmbodiedCO2e: any;
totalEmbodiedCO2e: any;
totalOperationalCO2e: any;
dataCenterCO2e: any;
networkCO2e: any;
consumerDeviceCO2e: any;
} | {
total: number;
};
perVisit(bytes: number, includeDatacenter?: boolean, green?: boolean, segmented?: boolean, ratingResults?: boolean, options?: any): {
co2: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
energy: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
rating: string;
} | {
co2: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
energy: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
rating: {
interactive: string;
load: string;
};
} | {
segments: {
firstVisitCO2e: number;
returnVisitCO2e: number;
dataCenterOperationalCO2e: any;
networkOperationalCO2e: any;
consumerDeviceOperationalCO2e: any;
dataCenterEmbodiedCO2e: any;
networkEmbodiedCO2e: any;
consumerDeviceEmbodiedCO2e: any;
totalEmbodiedCO2e: any;
totalOperationalCO2e: any;
dataCenterCO2e: any;
networkCO2e: any;
consumerDeviceCO2e: any;
};
co2: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
energy: {
total: number;
dataCenter: number;
network: number;
device: number;
embodied: {
dataCenter: number;
network: number;
device: number;
};
operational: {
dataCenter: number;
network: number;
device: number;
};
};
rating: string;
};
/**
* Determines the rating of a website's sustainability based on its CO2 emissions.
*
* @param {number} co2e - The CO2 emissions of the website in grams.
* @returns {string} The sustainability rating, ranging from "A+" (best) to "F" (worst).
*/
ratingScale(co2e: number): "A+" | "A" | "B" | "C" | "D" | "E" | "F";
calculateScrollRating(co2e: number): string;
}
export { SustainableWebDesign };
export default SustainableWebDesign;
//# sourceMappingURL=swd.d.ts.map