@powercalc/power-router 1.0.63 → 1.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/controllers/LoadAndParse.d.ts +1 -0
  2. package/dist/controllers/LoadAndParse.js +12 -5
  3. package/dist/controllers/LoadAndParse.js.map +1 -1
  4. package/dist/controllers/Router.js +1 -0
  5. package/dist/controllers/Router.js.map +1 -1
  6. package/dist/interfaces/config.d.ts +1 -0
  7. package/dist/services/EnergyCharts.d.ts +17 -0
  8. package/dist/services/EnergyCharts.js +190 -0
  9. package/dist/services/EnergyCharts.js.map +1 -0
  10. package/dist/services/Eurostat.d.ts +3 -2
  11. package/dist/services/Eurostat.js +49 -13
  12. package/dist/services/Eurostat.js.map +1 -1
  13. package/dist/services/LoadService.d.ts +12 -11
  14. package/dist/services/LoadService.js +44 -18
  15. package/dist/services/LoadService.js.map +1 -1
  16. package/dist/services/Loader.d.ts +2 -2
  17. package/dist/services/Loader.js +10 -2
  18. package/dist/services/Loader.js.map +1 -1
  19. package/dist/services/NaturalGasPrice.d.ts +2 -1
  20. package/dist/services/NaturalGasPrice.js +5 -1
  21. package/dist/services/NaturalGasPrice.js.map +1 -1
  22. package/dist/services/ParseEdifact.js +0 -6
  23. package/dist/services/ParseEdifact.js.map +1 -1
  24. package/dist/services/batch/maxHydrofill.js +0 -2
  25. package/dist/services/batch/maxHydrofill.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/app.ts +9 -0
  28. package/src/genTypes.ts +0 -1
  29. package/src/router/controllers/LoadAndParse.ts +11 -6
  30. package/src/router/controllers/Router.ts +1 -1
  31. package/src/router/interfaces/config.ts +6 -5
  32. package/src/router/services/EnergyCharts.ts +195 -0
  33. package/src/router/services/Eurostat.ts +111 -68
  34. package/src/router/services/LoadService.ts +129 -80
  35. package/src/router/services/Loader.ts +11 -4
  36. package/src/router/services/NaturalGasPrice.ts +5 -1
  37. package/src/router/services/ParseEdifact.ts +0 -6
  38. package/src/router/services/batch/maxHydrofill.ts +0 -2
@@ -2,6 +2,7 @@ import { Request } from 'express';
2
2
  import { LoadService } from '../services/LoadService';
3
3
  import { Config } from '../interfaces/config';
4
4
  export declare class LoadAndParse {
5
+ private config;
5
6
  country: string;
6
7
  private countries;
7
8
  loadService: LoadService;
@@ -7,6 +7,7 @@ const LoadService_1 = require("../services/LoadService");
7
7
  const queryoptions_1 = require("../interfaces/queryoptions");
8
8
  class LoadAndParse {
9
9
  constructor(config) {
10
+ this.config = config;
10
11
  this.country = '';
11
12
  const countriesFile = (0, path_1.join)(__dirname, '../config/countries.json'); // Set the path to your config file
12
13
  this.countries = JSON.parse((0, fs_1.readFileSync)(countriesFile, 'utf8')); // Read the config file from disk
@@ -38,19 +39,25 @@ class LoadAndParse {
38
39
  throw new Error('Unknown country ' + country);
39
40
  }
40
41
  if (chartType === 'installed') {
41
- return await this.loadService.getInstalled(countryCode, reload);
42
+ console.log('yes');
43
+ return await this.loadService.getInstalled(countryCode, queryOptions);
42
44
  }
43
45
  if (chartType === 'power') {
44
- return await this.loadService.getPower(countryCode, year, month, queryOptions);
46
+ if (this.config.source === 'energycharts') {
47
+ return await this.loadService.getPowerEnergyCharts(countryCode, year, month);
48
+ }
49
+ else {
50
+ return await this.loadService.getPower(countryCode, year, month, queryOptions);
51
+ }
45
52
  }
46
53
  if (chartType === 'hydrofill') {
47
- return await this.loadService.getHydrofill(countryCode, reload);
54
+ return await this.loadService.getHydrofill(countryCode, queryOptions);
48
55
  }
49
56
  if (chartType === 'fossil') {
50
- return await this.loadService.getFossil(countryCode);
57
+ return await this.loadService.getFossil(countryCode, queryOptions);
51
58
  }
52
59
  if (chartType === 'countrydata') {
53
- return await this.loadService.getCountrydata(countryCode, reload);
60
+ return await this.loadService.getCountrydata(countryCode, queryOptions);
54
61
  }
55
62
  }
56
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoadAndParse.js","sourceRoot":"","sources":["../../src/router/controllers/LoadAndParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoadAndParse.js","sourceRoot":"","sources":["../../src/router/controllers/LoadAndParse.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ class PowerRouter {
53
53
  const cacheKey = req.url;
54
54
  const cacheFilePath = `${config.cacheDir}/json.gz/${(0, crypto_1.createHash)('md5').update(cacheKey).digest('hex')}.json.gz`;
55
55
  if (!(req.headers['reload'] === 'full')) {
56
+ // todo: throttle
56
57
  // check if there is a cache file for this request
57
58
  try {
58
59
  const stats = await (0, promises_1.stat)(cacheFilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/controllers/Router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/controllers/Router.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export interface Config {
2
+ source: string;
2
3
  securityToken: string;
3
4
  cacheDir: string;
4
5
  entsoeDomain: string;
@@ -0,0 +1,17 @@
1
+ export declare class EnergyCharts {
2
+ pumpUp: string;
3
+ trans: ({
4
+ energyCharts: string;
5
+ powerRouter: null;
6
+ } | {
7
+ energyCharts: string;
8
+ powerRouter: string;
9
+ })[];
10
+ countries: any;
11
+ constructor();
12
+ load(country: string, startIso: string, endIso: string): Promise<any>;
13
+ getPrices(country: string, startIso: string, endIso: string): Promise<any>;
14
+ translate(json: any): any;
15
+ rebase(data: any, newTime: number[]): any;
16
+ private findTime;
17
+ }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnergyCharts = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ class EnergyCharts {
7
+ constructor() {
8
+ this.pumpUp = 'Hydro pumped storage consumption';
9
+ this.trans = [
10
+ {
11
+ energyCharts: 'Hydro pumped storage consumption',
12
+ powerRouter: null,
13
+ },
14
+ {
15
+ energyCharts: 'Cross border electricity trading',
16
+ powerRouter: 'other',
17
+ },
18
+ {
19
+ energyCharts: 'Nuclear',
20
+ powerRouter: 'nuclear',
21
+ },
22
+ {
23
+ energyCharts: 'Hydro Run-of-River',
24
+ powerRouter: 'hydroRunOfRiverAndPoundage',
25
+ },
26
+ {
27
+ energyCharts: 'Biomass',
28
+ powerRouter: 'biomass',
29
+ },
30
+ {
31
+ energyCharts: 'Fossil brown coal / lignite',
32
+ powerRouter: 'fossilBrownCoalLignite',
33
+ },
34
+ {
35
+ energyCharts: 'Fossil hard coal',
36
+ powerRouter: 'fossilHardCoal',
37
+ },
38
+ {
39
+ energyCharts: 'Fossil oil',
40
+ powerRouter: 'fossilOil',
41
+ },
42
+ {
43
+ energyCharts: 'Fossil gas',
44
+ powerRouter: 'fossilGas',
45
+ },
46
+ {
47
+ energyCharts: 'Geothermal',
48
+ powerRouter: 'geothermal',
49
+ },
50
+ {
51
+ energyCharts: 'Hydro water reservoir',
52
+ powerRouter: 'hydroWaterReservoir',
53
+ },
54
+ {
55
+ energyCharts: 'Hydro pumped storage',
56
+ powerRouter: 'hydroPumpedStorage',
57
+ },
58
+ {
59
+ energyCharts: 'Others',
60
+ powerRouter: 'other',
61
+ },
62
+ {
63
+ energyCharts: 'Waste',
64
+ powerRouter: 'waste',
65
+ },
66
+ {
67
+ energyCharts: 'Wind offshore',
68
+ powerRouter: 'windOffshore',
69
+ },
70
+ {
71
+ energyCharts: 'Wind onshore',
72
+ powerRouter: 'windOnshore',
73
+ },
74
+ {
75
+ energyCharts: 'Solar',
76
+ powerRouter: 'solar',
77
+ },
78
+ {
79
+ energyCharts: 'Load',
80
+ powerRouter: 'consumption',
81
+ },
82
+ ];
83
+ const countryPath = (0, path_1.join)(__dirname, '..', 'config/countries.json');
84
+ const countriesString = (0, fs_1.readFileSync)(countryPath, 'utf-8');
85
+ this.countries = JSON.parse(countriesString);
86
+ }
87
+ async load(country, startIso, endIso) {
88
+ var _a, _b;
89
+ const countryShort = (_b = (_a = this.countries
90
+ .find((item) => item.code === country)) === null || _a === void 0 ? void 0 : _a.short) === null || _b === void 0 ? void 0 : _b.toLowerCase();
91
+ const start = encodeURIComponent(startIso);
92
+ const end = encodeURIComponent(endIso);
93
+ const url = `https://api.energy-charts.info/public_power?country=${countryShort}&start=${start}&end=${end}`;
94
+ const response = await fetch(url);
95
+ const json = await response.json();
96
+ //console.log(json);
97
+ const t = this.translate(json);
98
+ const priceTime = await this.getPrices(countryShort, startIso, endIso);
99
+ const rebasedPrice = this.rebase(priceTime, t.time);
100
+ t.price = rebasedPrice.price;
101
+ return t;
102
+ }
103
+ async getPrices(country, startIso, endIso) {
104
+ let zone = country.toUpperCase();
105
+ if (zone === 'DE') {
106
+ zone = 'DE-LU';
107
+ }
108
+ const start = encodeURIComponent(startIso);
109
+ const end = encodeURIComponent(endIso);
110
+ const url = `https://api.energy-charts.info/price?bzn=${zone}&start=${start}&end=${end}`;
111
+ const response = await fetch(url);
112
+ const json = await response.json();
113
+ if ((json === null || json === void 0 ? void 0 : json.unix_seconds) && (json === null || json === void 0 ? void 0 : json.price)) {
114
+ const r = {
115
+ time: json.unix_seconds.map((item) => (item || 0) * 1000),
116
+ price: json.price
117
+ };
118
+ return r;
119
+ }
120
+ }
121
+ translate(json) {
122
+ var _a;
123
+ let pumpup;
124
+ const r = {
125
+ time: json.unix_seconds.map((item) => item * 1000),
126
+ };
127
+ (_a = json.production_types) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
128
+ const found = this.trans.find((t) => t.energyCharts === item.name);
129
+ if (found === null || found === void 0 ? void 0 : found.powerRouter) {
130
+ r[found.powerRouter] = item.data;
131
+ }
132
+ if (item.name === this.pumpUp) {
133
+ pumpup = item.data;
134
+ }
135
+ });
136
+ const hydroPumpedStorage = JSON.parse(JSON.stringify(r['hydroPumpedStorage']));
137
+ if (pumpup) {
138
+ r['hydroPumpedStorage'] = hydroPumpedStorage.map((item, i) => (item || 0) + ((pumpup === null || pumpup === void 0 ? void 0 : pumpup[i]) || 0));
139
+ }
140
+ //console.log(r)
141
+ return r;
142
+ }
143
+ rebase(data, newTime) {
144
+ const sourceTime = data['time'];
145
+ const result = {};
146
+ const keys = Object.keys(data).filter((item) => item !== 'time');
147
+ keys.forEach((key) => {
148
+ result[key] = [];
149
+ });
150
+ newTime.forEach((time) => {
151
+ const [lo, hi] = this.findTime(sourceTime, time);
152
+ const timeDistance = sourceTime[hi] - sourceTime[lo];
153
+ const timeDelta = time - sourceTime[lo];
154
+ keys.forEach((key) => {
155
+ const hiValue = data[key][hi];
156
+ const loValue = data[key][lo];
157
+ const deltaValue = hiValue - loValue;
158
+ const value = loValue + (deltaValue * timeDelta) / timeDistance;
159
+ result[key].push(value);
160
+ });
161
+ });
162
+ // this.changeToEv(result, ev);
163
+ return result;
164
+ }
165
+ findTime(sourceTime, time) {
166
+ let lo = 0;
167
+ let hi = sourceTime.length - 1;
168
+ if (sourceTime.length === 1) {
169
+ return [0, 0];
170
+ }
171
+ if (sourceTime[lo] > time) {
172
+ return [lo, lo + 1];
173
+ }
174
+ if (sourceTime[hi] < time) {
175
+ return [hi - 1, hi];
176
+ }
177
+ while (hi - lo > 1) {
178
+ const mid = Math.trunc((lo + hi) / 2);
179
+ if (sourceTime[mid] < time) {
180
+ lo = mid;
181
+ }
182
+ else {
183
+ hi = mid;
184
+ }
185
+ }
186
+ return [lo, hi];
187
+ }
188
+ }
189
+ exports.EnergyCharts = EnergyCharts;
190
+ //# sourceMappingURL=EnergyCharts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnergyCharts.js","sourceRoot":"","sources":["../../src/router/services/EnergyCharts.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Country } from "./Loader";
1
+ import { Country } from './Loader';
2
+ import { QueryOptions } from '../interfaces/queryoptions';
2
3
  export declare class EurostatAPI {
3
4
  countries: Country[];
4
5
  constructor();
@@ -6,5 +7,5 @@ export declare class EurostatAPI {
6
7
  private energyConversionFactors;
7
8
  convertToMWh(value: number, unit: string): number;
8
9
  private fetchData;
9
- load(countryCode: string): Promise<any>;
10
+ load(countryCode: string, queryOptions: QueryOptions): Promise<any>;
10
11
  }
@@ -3,16 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EurostatAPI = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
- process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = '0';
6
+ const queryoptions_1 = require("../interfaces/queryoptions");
7
+ process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
7
8
  class EurostatAPI {
8
9
  constructor() {
9
10
  this.countries = [];
10
11
  this.fuels = {
11
- gas: { chartType: 'NRG_CB_GASM', siec: 'G3000', nrg_bal: 'IC_OBS', unit: 'TJ_GCV', freq: 'M' },
12
- gas4electricity: { chartType: 'NRG_CB_GASM', siec: 'G3000', nrg_bal: 'TI_EHG_MAP', unit: 'TJ_GCV', freq: 'M' },
13
- gasoline: { chartType: 'NRG_CB_OILM', siec: 'O4652', nrg_bal: 'GID_OBS', unit: 'THS_T', freq: 'M' },
14
- diesel: { chartType: 'NRG_CB_OILM', siec: 'O46711', nrg_bal: 'GID_OBS', unit: 'THS_T', freq: 'M' },
15
- kerosin: { chartType: 'NRG_CB_OILM', siec: 'O4661', nrg_bal: 'GID_OBS', unit: 'THS_T', freq: 'M' }
12
+ gas: {
13
+ chartType: 'NRG_CB_GASM',
14
+ siec: 'G3000',
15
+ nrg_bal: 'IC_OBS',
16
+ unit: 'TJ_GCV',
17
+ freq: 'M',
18
+ },
19
+ gas4electricity: {
20
+ chartType: 'NRG_CB_GASM',
21
+ siec: 'G3000',
22
+ nrg_bal: 'TI_EHG_MAP',
23
+ unit: 'TJ_GCV',
24
+ freq: 'M',
25
+ },
26
+ gasoline: {
27
+ chartType: 'NRG_CB_OILM',
28
+ siec: 'O4652',
29
+ nrg_bal: 'GID_OBS',
30
+ unit: 'THS_T',
31
+ freq: 'M',
32
+ },
33
+ diesel: {
34
+ chartType: 'NRG_CB_OILM',
35
+ siec: 'O46711',
36
+ nrg_bal: 'GID_OBS',
37
+ unit: 'THS_T',
38
+ freq: 'M',
39
+ },
40
+ kerosin: {
41
+ chartType: 'NRG_CB_OILM',
42
+ siec: 'O4661',
43
+ nrg_bal: 'GID_OBS',
44
+ unit: 'THS_T',
45
+ freq: 'M',
46
+ },
16
47
  };
17
48
  this.energyConversionFactors = new Map([
18
49
  ['KG_EQ', 12988.48],
@@ -24,7 +55,7 @@ class EurostatAPI {
24
55
  this.countries = JSON.parse(countriesString);
25
56
  }
26
57
  convertToMWh(value, unit) {
27
- const MWh = value * (this.energyConversionFactors.get(unit) || 0) / 3600 / 10 ** 6;
58
+ const MWh = (value * (this.energyConversionFactors.get(unit) || 0)) / 3600 / 10 ** 6;
28
59
  return Math.round(MWh);
29
60
  }
30
61
  async fetchData(url, type, unit) {
@@ -33,33 +64,38 @@ class EurostatAPI {
33
64
  try {
34
65
  const time = Object.keys(data.dimension.time.category.index);
35
66
  return {
36
- time: time.map(item => new Date(item).getTime()),
37
- [type]: Object.values(data.value).map((item) => this.convertToMWh(item, unit))
67
+ time: time.map((item) => new Date(item).getTime()),
68
+ [type]: Object.values(data.value).map((item) => this.convertToMWh(item, unit)),
38
69
  };
39
70
  }
40
71
  catch (e) {
41
72
  return {
42
73
  [type]: [],
43
- time: []
74
+ time: [],
44
75
  };
45
76
  }
46
77
  }
47
- async load(countryCode) {
78
+ async load(countryCode, queryOptions) {
48
79
  var _a;
49
- const countryShort = (_a = this.countries.find(item => item.code === countryCode)) === null || _a === void 0 ? void 0 : _a.short;
80
+ const countryShort = (_a = this.countries.find((item) => item.code === countryCode)) === null || _a === void 0 ? void 0 : _a.short;
50
81
  const baseUrl = 'https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/';
51
82
  const geo = `.${countryShort}`;
83
+ const urls = [];
52
84
  const promises = [];
53
85
  for (const [type, fuel] of Object.entries(this.fuels)) {
54
86
  const { chartType, siec, nrg_bal, unit, freq } = fuel;
55
87
  const select = `${chartType}/${freq}.${nrg_bal}.${siec}.${unit}`;
56
88
  const rest = `?format=JSON&lang=en&startPeriod=2015-01&endPeriod=2050-12`;
57
89
  const url = `${baseUrl}${select}${geo}${rest}`;
90
+ urls.push(url);
58
91
  promises.push(this.fetchData(url, type, unit));
59
92
  }
93
+ if (queryOptions.format === queryoptions_1.Format.SOURCES) {
94
+ return urls;
95
+ }
60
96
  const res = await Promise.all(promises);
61
97
  let merged = {};
62
- res.forEach(item => {
98
+ res.forEach((item) => {
63
99
  merged = { ...merged, ...item };
64
100
  });
65
101
  return merged; // this.removeElGas(merged);
@@ -1 +1 @@
1
- {"version":3,"file":"Eurostat.js","sourceRoot":"","sources":["../../src/router/services/Eurostat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Eurostat.js","sourceRoot":"","sources":["../../src/router/services/Eurostat.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { EntsoeLoader, LoaderConfig } from "./Loader";
2
- import { EdifactParser } from "./ParseEdifact";
3
- import { ParseInstalled } from "./ParseInstalled";
4
- import { QueryOptions } from "../interfaces/queryoptions";
1
+ import { EntsoeLoader, LoaderConfig } from './Loader';
2
+ import { EdifactParser } from './ParseEdifact';
3
+ import { ParseInstalled } from './ParseInstalled';
4
+ import { QueryOptions } from '../interfaces/queryoptions';
5
5
  export declare class LoadService {
6
6
  private loaderConfig;
7
7
  country: string;
@@ -9,25 +9,26 @@ export declare class LoadService {
9
9
  parser: EdifactParser;
10
10
  parseInstalled: ParseInstalled;
11
11
  constructor(loaderConfig: LoaderConfig);
12
+ getPowerEnergyCharts(countryCode: string, year: number, month: number): Promise<any>;
12
13
  getPower(countryCode: string, year: number, month: number, queryOptions?: QueryOptions): Promise<any>;
13
- getInstalled(countryCode: string, reload: boolean): Promise<any>;
14
- getHydrofill(countryCode: string, reload: boolean): Promise<{
14
+ getInstalled(countryCode: string, queryOptions: QueryOptions): Promise<any>;
15
+ getHydrofill(countryCode: string, queryOptions: QueryOptions): Promise<any[] | {
15
16
  time: number[];
16
17
  hydroFill: number[];
17
18
  }>;
18
- getFossil(country: string): Promise<any>;
19
- getNaturalGasPrices(country: string): Promise<{
19
+ getFossil(country: string, queryOptions: QueryOptions): Promise<any>;
20
+ getNaturalGasPrices(country: string, queryOptions: QueryOptions): Promise<string[] | {
20
21
  time: number[];
21
22
  naturalGasPrice: number[];
22
23
  }>;
23
- getCountrydata(country: string, reload: boolean): Promise<{
24
+ getCountrydata(country: string, queryOptions: QueryOptions): Promise<{
24
25
  fossil: any;
25
- price: {
26
+ price: string[] | {
26
27
  time: number[];
27
28
  naturalGasPrice: number[];
28
29
  };
29
30
  installed: any;
30
- hydrofill: {
31
+ hydrofill: any[] | {
31
32
  time: number[];
32
33
  hydroFill: number[];
33
34
  };
@@ -10,6 +10,7 @@ const CommonTimestamps_1 = require("./CommonTimestamps");
10
10
  const Eurostat_1 = require("./Eurostat");
11
11
  const queryoptions_1 = require("../interfaces/queryoptions");
12
12
  const NaturalGasPrice_1 = require("./NaturalGasPrice");
13
+ const EnergyCharts_1 = require("./EnergyCharts");
13
14
  class LoadService {
14
15
  constructor(loaderConfig) {
15
16
  this.loaderConfig = loaderConfig;
@@ -20,7 +21,16 @@ class LoadService {
20
21
  this.parser = new ParseEdifact_1.EdifactParser(types);
21
22
  this.parseInstalled = new ParseInstalled_1.ParseInstalled(types);
22
23
  }
24
+ async getPowerEnergyCharts(countryCode, year, month) {
25
+ const startMonth = new Date(Date.UTC(year, month - 1)).toISOString();
26
+ const endMonth = new Date(Date.UTC(year, month)).toISOString();
27
+ const energyCharts = new EnergyCharts_1.EnergyCharts();
28
+ const power = await energyCharts.load(countryCode, startMonth, endMonth);
29
+ return power;
30
+ }
23
31
  async getPower(countryCode, year, month, queryOptions) {
32
+ const startMonth = new Date(Date.UTC(year, month - 1)).toISOString();
33
+ const endMonth = new Date(Date.UTC(year, month)).toISOString();
24
34
  const wanted = ['generation', 'price', 'consumption'];
25
35
  if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) === queryoptions_1.Format.SOURCES) {
26
36
  return this.loader.makeUrls(wanted, countryCode, year, month);
@@ -33,24 +43,40 @@ class LoadService {
33
43
  if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) === queryoptions_1.Format.KEYVALUE) {
34
44
  return parsed;
35
45
  }
36
- const startMonth = (new Date(Date.UTC(year, month - 1))).toISOString();
37
- const endMonth = (new Date(Date.UTC(year, month))).toISOString();
38
46
  const ready = CommonTimestamps_1.CommonTimestamps.transform(parsed, startMonth, endMonth);
47
+ //console.log('e.price',e.price)
48
+ /*
49
+ if (!e.price) {
50
+ e.price = ready.price
51
+ }
52
+ */
39
53
  return ready;
40
54
  }
41
- async getInstalled(countryCode, reload) {
42
- const edifactAsJson = await this.loader.loadInstalled(countryCode, reload);
55
+ async getInstalled(countryCode, queryOptions) {
56
+ /*
57
+ if(queryOptions.format === Format.SOURCES){
58
+ return this.loader.makeUrls(['installed'], countryCode,1,1)
59
+ }
60
+ */
61
+ const edifactAsJson = await this.loader.loadInstalled(countryCode, queryOptions);
62
+ if (queryOptions.format === queryoptions_1.Format.SOURCES) {
63
+ return edifactAsJson;
64
+ }
43
65
  const ready = await this.parseInstalled.parse(edifactAsJson);
44
66
  return ready;
45
67
  }
46
- async getHydrofill(countryCode, reload) {
68
+ async getHydrofill(countryCode, queryOptions) {
47
69
  var _a;
48
70
  const wanted = ['hydroFill'];
49
71
  const endYear = new Date().getFullYear() + 1;
50
72
  let all = [];
51
73
  for (let year = 2015; year < endYear; year++) {
52
74
  const month = 1;
53
- const edifactAsJson = await this.loader.load(wanted, countryCode, year, month, { reload });
75
+ const edifactAsJson = await this.loader.load(wanted, countryCode, year, month, queryOptions);
76
+ console.log(edifactAsJson);
77
+ if (queryOptions.format === queryoptions_1.Format.SOURCES) {
78
+ return [edifactAsJson.hydroFill];
79
+ }
54
80
  const parsed = await this.parser.parseAll(edifactAsJson);
55
81
  if (parsed === null || parsed === void 0 ? void 0 : parsed.hydroFill) {
56
82
  const yearArr = (_a = Object.values(parsed === null || parsed === void 0 ? void 0 : parsed.hydroFill)) === null || _a === void 0 ? void 0 : _a[0];
@@ -63,25 +89,25 @@ class LoadService {
63
89
  return index === self.findIndex((o) => o.time === obj.time);
64
90
  });
65
91
  return {
66
- time: keyValue.map(item => item.time),
67
- hydroFill: keyValue.map(item => item.value)
92
+ time: keyValue.map((item) => item.time),
93
+ hydroFill: keyValue.map((item) => item.value),
68
94
  };
69
95
  }
70
- async getFossil(country) {
96
+ async getFossil(country, queryOptions) {
71
97
  const eurostat = new Eurostat_1.EurostatAPI();
72
- return await eurostat.load(country);
98
+ return await eurostat.load(country, queryOptions);
73
99
  }
74
- async getNaturalGasPrices(country) {
100
+ async getNaturalGasPrices(country, queryOptions) {
75
101
  const eurostat = new NaturalGasPrice_1.NaturalGasPrices();
76
- return await eurostat.load(country);
102
+ return await eurostat.load(country, queryOptions);
77
103
  }
78
- async getCountrydata(country, reload) {
79
- console.log('reload', country, reload);
104
+ async getCountrydata(country, queryOptions) {
105
+ console.log('reload', country, queryOptions.reload);
80
106
  return {
81
- fossil: await this.getFossil(country),
82
- price: await this.getNaturalGasPrices(country),
83
- installed: await this.getInstalled(country, reload),
84
- hydrofill: await this.getHydrofill(country, reload)
107
+ fossil: await this.getFossil(country, queryOptions),
108
+ price: await this.getNaturalGasPrices(country, queryOptions),
109
+ installed: await this.getInstalled(country, queryOptions),
110
+ hydrofill: await this.getHydrofill(country, queryOptions),
85
111
  };
86
112
  }
87
113
  }