UNPKG

@cloud-carbon-footprint/core

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions.

26 lines 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("../."); class EmbodiedEmissionsEstimator { constructor(serverExpectedLifespan) { this.serverExpectedLifespan = serverExpectedLifespan; } estimate(data, region, emissionsFactors) { return data.map((data) => { const estimatedCO2Emissions = this.estimateCo2e(data.usageTimePeriod, data.instancevCpu, data.largestInstancevCpu, data.scopeThreeEmissions); const estimatedKilowattHours = (0, _1.estimateKwh)(estimatedCO2Emissions, region, emissionsFactors); return { co2e: estimatedCO2Emissions, timestamp: data.timestamp, kilowattHours: estimatedKilowattHours, }; }); } estimateCo2e(usageTimePeriod, instancevCpu, largestInstancevCpu, scopeThreeEmissions) { return (scopeThreeEmissions * (usageTimePeriod / this.serverExpectedLifespan) * (instancevCpu / largestInstancevCpu)); } } exports.default = EmbodiedEmissionsEstimator; //# sourceMappingURL=EmbodiedEmissionsEstimator.js.map