@vim-crouwel/cfpc
Version:
TypeScript library for calculating CO2 emissions from food, energy, and transportation
42 lines (41 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.co2PerKm = co2PerKm;
exports.dataSource = dataSource;
exports.getTransportationModes = getTransportationModes;
const utils_1 = require("../utils");
const transportationData = (0, utils_1.getTransportation)();
/**
* Calculate CO2 emissions for transportation
* @param mode - Transportation mode (car, bus, train, etc.)
* @param km - Distance in kilometers
* @returns CO2 emissions in kg
*/
function co2PerKm(mode, km) {
checkMode(mode);
if (km < 0)
throw new Error('Distance cannot be negative');
return transportationData[mode].co2_per_km * km;
}
/**
* Get data source for a specific transportation mode
* @param mode - Transportation mode
* @returns Data source reference
*/
function dataSource(mode) {
checkMode(mode);
return transportationData[mode].source;
}
/**
* Get all available transportation modes
* @returns Array of transportation mode names
*/
function getTransportationModes() {
return Object.keys(transportationData);
}
//UTILS
function checkMode(mode) {
const transportMode = transportationData[mode];
if (!transportMode)
throw new Error(`${mode} does not exist.`);
}