@wayota/redata-api-client
Version:
TypeScript client for the REData (Red Eléctrica de España) public API. Provides convenient methods to fetch Spanish electricity data widgets, supporting category, widget, date range, and geographic filters. The client is based on a custom OpenAPI specific
36 lines (35 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
const Lang_1 = require("./enums/Lang");
class Client {
constructor(config = { baseUrl: 'https://apidatos.ree.es' }) {
this.config = config;
this.lang = Lang_1.Lang.es;
}
buildUrl({ category, widget, lang }) {
return new URL(`${this.config.baseUrl}/${lang}/datos/${category}/${widget}`);
}
async getByCategoryByWidget(params) {
const { lang = this.lang, category, widget, query } = params;
const url = this.buildUrl({ category, widget, lang });
url.searchParams.set('start_date', query.startDate);
url.searchParams.set('end_date', query.endDate);
url.searchParams.set('time_trunc', query.timeTrunc);
if (query.geotrunc) {
url.searchParams.set('geo_trunc', query.geotrunc);
}
if (query.geoLimit) {
url.searchParams.set('geo_limit', query.geoLimit);
}
if (query.geoIds) {
url.searchParams.set('geo_ids', query.geoIds);
}
const response = await fetch(url.toString());
if (!response.ok) {
throw new Error(`Error fetching data: ${response.statusText}`);
}
return response.json();
}
}
exports.Client = Client;