@powercalc/power-router 1.0.44 → 1.0.45
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.
- package/dist/autoloader/index.d.ts +6 -0
- package/dist/autoloader/index.js +30 -0
- package/dist/autoloader/index.js.map +1 -0
- package/dist/{router/controllers → controllers}/LoadAndParse.js +10 -14
- package/dist/controllers/LoadAndParse.js.map +1 -0
- package/dist/{router/controllers → controllers}/Router.js +20 -23
- package/dist/controllers/Router.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces/config.js +2 -0
- package/dist/{router/interfaces → interfaces}/config.js.map +1 -1
- package/dist/interfaces/entsoe.js +2 -0
- package/dist/{router/interfaces → interfaces}/entsoe.js.map +1 -1
- package/dist/interfaces/queryoptions.js +13 -0
- package/dist/interfaces/queryoptions.js.map +1 -0
- package/dist/interfaces/types.js +2 -0
- package/dist/{router/interfaces → interfaces}/types.js.map +1 -1
- package/dist/router/config/types.json +2 -2
- package/dist/{router/services → services}/CommonTimestamps.js +8 -21
- package/dist/services/CommonTimestamps.js.map +1 -0
- package/dist/{router/services → services}/Eurostat.js +5 -13
- package/dist/services/Eurostat.js.map +1 -0
- package/dist/{router/services → services}/LoadService.js +19 -23
- package/dist/services/LoadService.js.map +1 -0
- package/dist/{router/services → services}/Loader.js +16 -20
- package/dist/services/Loader.js.map +1 -0
- package/dist/{router/services → services}/ParseEdifact.js +5 -10
- package/dist/services/ParseEdifact.js.map +1 -0
- package/dist/{router/services → services}/ParseInstalled.js +1 -5
- package/dist/services/ParseInstalled.js.map +1 -0
- package/dist/{router/services → services}/batch/maxHydrofill.js +9 -13
- package/dist/services/batch/maxHydrofill.js.map +1 -0
- package/package.json +3 -1
- package/src/app.ts +24 -16
- package/src/router/autoloader/index.ts +31 -0
- package/src/router/controllers/Router.ts +2 -2
- package/src/router/services/Loader.ts +1 -1
- package/dist/app.d.ts +0 -1
- package/dist/app.js +0 -27
- package/dist/app.js.map +0 -1
- package/dist/converter.d.ts +0 -8
- package/dist/converter.js +0 -57
- package/dist/converter.js.map +0 -1
- package/dist/genTypes.d.ts +0 -4
- package/dist/genTypes.js +0 -54
- package/dist/genTypes.js.map +0 -1
- package/dist/load.d.ts +0 -7
- package/dist/load.js +0 -32
- package/dist/load.js.map +0 -1
- package/dist/router/controllers/LoadAndParse.js.map +0 -1
- package/dist/router/controllers/Router.js.map +0 -1
- package/dist/router/index.d.ts +0 -2
- package/dist/router/index.js +0 -6
- package/dist/router/index.js.map +0 -1
- package/dist/router/interfaces/config.js +0 -3
- package/dist/router/interfaces/entsoe.js +0 -3
- package/dist/router/interfaces/queryoptions.js +0 -16
- package/dist/router/interfaces/queryoptions.js.map +0 -1
- package/dist/router/interfaces/types.js +0 -3
- package/dist/router/services/CommonTimestamps.js.map +0 -1
- package/dist/router/services/Eurostat.js.map +0 -1
- package/dist/router/services/LoadService.js.map +0 -1
- package/dist/router/services/Loader.js.map +0 -1
- package/dist/router/services/ParseEdifact.js.map +0 -1
- package/dist/router/services/ParseInstalled.js.map +0 -1
- package/dist/router/services/batch/maxHydrofill.js.map +0 -1
- /package/dist/{router/controllers → controllers}/LoadAndParse.d.ts +0 -0
- /package/dist/{router/controllers → controllers}/Router.d.ts +0 -0
- /package/dist/{router/interfaces → interfaces}/config.d.ts +0 -0
- /package/dist/{router/interfaces → interfaces}/entsoe.d.ts +0 -0
- /package/dist/{router/interfaces → interfaces}/queryoptions.d.ts +0 -0
- /package/dist/{router/interfaces → interfaces}/types.d.ts +0 -0
- /package/dist/{config → router}/countries.json +0 -0
- /package/dist/{config → router}/countrydata.json +0 -0
- /package/dist/{config → router}/types.json +0 -0
- /package/dist/{router/services → services}/CommonTimestamps.d.ts +0 -0
- /package/dist/{router/services → services}/Eurostat.d.ts +0 -0
- /package/dist/{router/services → services}/LoadService.d.ts +0 -0
- /package/dist/{router/services → services}/Loader.d.ts +0 -0
- /package/dist/{router/services → services}/ParseEdifact.d.ts +0 -0
- /package/dist/{router/services → services}/ParseInstalled.d.ts +0 -0
- /package/dist/{router/services → services}/batch/maxHydrofill.d.ts +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class Autoload {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.baseUrl = "http://3.71.38.118/";
|
|
4
|
+
}
|
|
5
|
+
init() {
|
|
6
|
+
this.iterateCountries();
|
|
7
|
+
}
|
|
8
|
+
async iterateCountries() {
|
|
9
|
+
const response = await fetch(`${this.baseUrl}/entsoe/coutries`);
|
|
10
|
+
const json = await response.json();
|
|
11
|
+
const countryList = json.map((item) => item.name);
|
|
12
|
+
for (let c = 0; c < countryList.length; c++) {
|
|
13
|
+
await this.loadContry(countryList[c]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async loadContry(country) {
|
|
17
|
+
const minYear = 2015;
|
|
18
|
+
const maxYear = 2023;
|
|
19
|
+
for (let year = minYear; year <= maxYear; year++) {
|
|
20
|
+
for (let month = 1; month <= 12; month++) {
|
|
21
|
+
const url = `${this.baseUrl}/entsoe/${country}/${year}/${month}`;
|
|
22
|
+
console.log(url);
|
|
23
|
+
const response = await fetch(url);
|
|
24
|
+
const json = await response.json();
|
|
25
|
+
console.log(json);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/autoloader/index.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;IAArB;QACE,YAAO,GAAG,qBAAqB,CAAC;IA2BlC,CAAC;IA1BC,IAAI;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAe,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,WAAW,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YACjC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;IAEX,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,OAAc;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,EAAE;YAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,WAAW,OAAO,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACnB;SACF;IACH,CAAC;CACF"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const LoadService_1 = require("../services/LoadService");
|
|
7
|
-
const queryoptions_1 = require("../interfaces/queryoptions");
|
|
8
|
-
class LoadAndParse {
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
import { LoadService } from '../services/LoadService';
|
|
4
|
+
import { Format, PosNeg } from '../interfaces/queryoptions';
|
|
5
|
+
export class LoadAndParse {
|
|
9
6
|
constructor(config) {
|
|
10
7
|
this.country = '';
|
|
11
|
-
const countriesFile =
|
|
12
|
-
this.countries = JSON.parse(
|
|
13
|
-
this.loadService = new
|
|
8
|
+
const countriesFile = join(__dirname, '../config/countries.json'); // Set the path to your config file
|
|
9
|
+
this.countries = JSON.parse(readFileSync(countriesFile, 'utf8')); // Read the config file from disk
|
|
10
|
+
this.loadService = new LoadService(config);
|
|
14
11
|
}
|
|
15
12
|
async get(req, chartType) {
|
|
16
13
|
var _a;
|
|
@@ -22,10 +19,10 @@ class LoadAndParse {
|
|
|
22
19
|
const queryOptions = {};
|
|
23
20
|
const year = parseInt(req.params.year);
|
|
24
21
|
const month = parseInt(req.params.month);
|
|
25
|
-
if (req.query.posneg ===
|
|
22
|
+
if (req.query.posneg === PosNeg.POS || req.query.posneg === PosNeg.NEG) {
|
|
26
23
|
queryOptions.posneg = req.query.posneg;
|
|
27
24
|
}
|
|
28
|
-
if (typeof (req.query.format) === 'string' && Object.values(
|
|
25
|
+
if (typeof (req.query.format) === 'string' && Object.values(Format).includes(req.query.format)) {
|
|
29
26
|
queryOptions.format = req.query.format;
|
|
30
27
|
}
|
|
31
28
|
let reload = false;
|
|
@@ -54,5 +51,4 @@ class LoadAndParse {
|
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
|
-
exports.LoadAndParse = LoadAndParse;
|
|
58
54
|
//# sourceMappingURL=LoadAndParse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadAndParse.js","sourceRoot":"","sources":["../../src/router/controllers/LoadAndParse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const LoadAndParse_1 = require("./LoadAndParse");
|
|
11
|
-
const path_1 = require("path");
|
|
12
|
-
class PowerRouter {
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { createHash } from 'crypto';
|
|
3
|
+
import { stat, writeFile } from 'fs/promises';
|
|
4
|
+
import { gzipSync } from 'zlib';
|
|
5
|
+
import { Buffer } from 'node:buffer';
|
|
6
|
+
import { createReadStream } from 'fs';
|
|
7
|
+
import { LoadAndParse } from './LoadAndParse';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
export class PowerRouter {
|
|
13
10
|
static init(config) {
|
|
14
11
|
console.log('init', config);
|
|
15
|
-
const router =
|
|
12
|
+
const router = Router();
|
|
16
13
|
router.get(`/:country/:year/:month`, async (req, res) => {
|
|
17
14
|
await this.load(config, req, res, 'power');
|
|
18
15
|
});
|
|
@@ -29,19 +26,19 @@ class PowerRouter {
|
|
|
29
26
|
await this.load(config, req, res, 'countrydata');
|
|
30
27
|
});
|
|
31
28
|
router.get('/types', async (req, res) => {
|
|
32
|
-
const filePath =
|
|
29
|
+
const filePath = join(__dirname, '..', 'config', 'types.json');
|
|
33
30
|
res.set({ 'Cache-Control': 'max-age=86400' });
|
|
34
31
|
res.sendFile(filePath);
|
|
35
32
|
});
|
|
36
33
|
router.get('/countries', async (req, res) => {
|
|
37
|
-
const filePath =
|
|
34
|
+
const filePath = join(__dirname, '..', 'config', 'countrydata.json');
|
|
38
35
|
res.set({ 'Cache-Control': 'max-age=86400' });
|
|
39
36
|
res.sendFile(filePath);
|
|
40
37
|
});
|
|
41
38
|
return router;
|
|
42
39
|
}
|
|
43
40
|
static async load(config, req, res, type) {
|
|
44
|
-
const entsoeLoader = new
|
|
41
|
+
const entsoeLoader = new LoadAndParse(config);
|
|
45
42
|
const cacheTime = this.calcCacheTime(req);
|
|
46
43
|
const successHeaders = {
|
|
47
44
|
'Cache-Control': `public, max-age=${cacheTime}`,
|
|
@@ -51,11 +48,11 @@ class PowerRouter {
|
|
|
51
48
|
try {
|
|
52
49
|
let cacheData;
|
|
53
50
|
const cacheKey = req.url;
|
|
54
|
-
const cacheFilePath = `${config.cacheDir}/${
|
|
51
|
+
const cacheFilePath = `${config.cacheDir}/json.gz/${createHash('md5').update(cacheKey).digest('hex')}.json.gz`;
|
|
55
52
|
if (!(req.headers['reload'] === 'full')) {
|
|
56
53
|
// check if there is a cache file for this request
|
|
57
54
|
try {
|
|
58
|
-
const stats = await
|
|
55
|
+
const stats = await stat(cacheFilePath);
|
|
59
56
|
const modtime = stats.mtime.getTime();
|
|
60
57
|
// Check if the If-Modified-Since header matches the last modified date
|
|
61
58
|
const ifModifiedSince = req.headers['if-modified-since'];
|
|
@@ -66,7 +63,7 @@ class PowerRouter {
|
|
|
66
63
|
res.setHeader('Last-Modified', (new Date(modtime)).toUTCString());
|
|
67
64
|
res.set(successHeaders);
|
|
68
65
|
console.log('cached');
|
|
69
|
-
|
|
66
|
+
createReadStream(cacheFilePath)
|
|
70
67
|
.pipe(res);
|
|
71
68
|
return;
|
|
72
69
|
}
|
|
@@ -78,9 +75,10 @@ class PowerRouter {
|
|
|
78
75
|
if (!cacheData) {
|
|
79
76
|
// LOAD THE DATA FROM SOURCE
|
|
80
77
|
const body = await entsoeLoader.get(req, type);
|
|
81
|
-
const buf =
|
|
82
|
-
const cacheDataBuffer =
|
|
83
|
-
await (
|
|
78
|
+
const buf = Buffer.from(JSON.stringify(body), 'utf-8');
|
|
79
|
+
const cacheDataBuffer = gzipSync(buf);
|
|
80
|
+
//await mkdir(basename(cacheFilePath), {recursive:true});
|
|
81
|
+
await writeFile(cacheFilePath, cacheDataBuffer, 'utf-8');
|
|
84
82
|
res.setHeader('Last-Modified', (new Date()).toUTCString());
|
|
85
83
|
res.set(successHeaders);
|
|
86
84
|
res.send(cacheDataBuffer);
|
|
@@ -102,5 +100,4 @@ class PowerRouter {
|
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
}
|
|
105
|
-
exports.PowerRouter = PowerRouter;
|
|
106
103
|
//# sourceMappingURL=Router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/controllers/Router.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { PowerRouter } from './controllers/Router';
|
|
2
|
+
export { Config } from './interfaces/config';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PowerRouter = void 0;
|
|
4
|
-
var Router_1 = require("./router/controllers/Router");
|
|
5
|
-
Object.defineProperty(exports, "PowerRouter", { enumerable: true, get: function () { return Router_1.PowerRouter; } });
|
|
1
|
+
export { PowerRouter } from './controllers/Router';
|
|
6
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/router/interfaces/config.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entsoe.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"entsoe.js","sourceRoot":"","sources":["../../src/router/interfaces/entsoe.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var Format;
|
|
2
|
+
(function (Format) {
|
|
3
|
+
Format["EDIFACT"] = "edifact";
|
|
4
|
+
Format["EDIJSON"] = "edijson";
|
|
5
|
+
Format["SOURCES"] = "sources";
|
|
6
|
+
Format["KEYVALUE"] = "keyvalue";
|
|
7
|
+
})(Format || (Format = {}));
|
|
8
|
+
export var PosNeg;
|
|
9
|
+
(function (PosNeg) {
|
|
10
|
+
PosNeg["POS"] = "pos";
|
|
11
|
+
PosNeg["NEG"] = "neg";
|
|
12
|
+
})(PosNeg || (PosNeg = {}));
|
|
13
|
+
//# sourceMappingURL=queryoptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryoptions.js","sourceRoot":"","sources":["../../src/router/interfaces/queryoptions.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,MAKX;AALD,WAAY,MAAM;IACd,6BAAmB,CAAA;IACnB,6BAAmB,CAAA;IACnB,6BAAmB,CAAA;IACnB,+BAAqB,CAAA;AACzB,CAAC,EALW,MAAM,KAAN,MAAM,QAKjB;AACD,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACd,qBAAW,CAAA;IACX,qBAAW,CAAA;AACf,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/interfaces/types.ts"],"names":[],"mappings":""}
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
"hydroPumpedStorage": {
|
|
205
205
|
"name": "Hydro Pumped Storage",
|
|
206
206
|
"psrType": "B10",
|
|
207
|
-
"co2Footprint":
|
|
207
|
+
"co2Footprint": null,
|
|
208
208
|
"color": "blue",
|
|
209
209
|
"abbr": "HP",
|
|
210
210
|
"type": "dispatchablegreen"
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
"hydroFill": {
|
|
270
270
|
"name": "Hydro Fill",
|
|
271
271
|
"psrType": "H99",
|
|
272
|
-
"co2Footprint":
|
|
272
|
+
"co2Footprint": null,
|
|
273
273
|
"color": "darkblue",
|
|
274
274
|
"abbr": "HF",
|
|
275
275
|
"type": "storage",
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.CommonTimestamps = void 0;
|
|
4
|
-
const luxon_1 = require("luxon");
|
|
5
|
-
class CommonTimestamps {
|
|
1
|
+
import { DateTime, Duration } from "luxon";
|
|
2
|
+
export class CommonTimestamps {
|
|
6
3
|
static transform(all, startMonth, endMonth) {
|
|
7
4
|
const best = this.bestResolution(all);
|
|
8
5
|
const time = this.makeTimeArray(startMonth, endMonth, best);
|
|
@@ -69,15 +66,9 @@ class CommonTimestamps {
|
|
|
69
66
|
}
|
|
70
67
|
static interpolate(all, newTimes) {
|
|
71
68
|
const best = this.best(all);
|
|
72
|
-
const dur =
|
|
69
|
+
const dur = Duration.fromISO(best).as("milliseconds");
|
|
73
70
|
const data = all[best];
|
|
74
71
|
const sourceTimes = data.map((item) => item.time);
|
|
75
|
-
/*
|
|
76
|
-
console.log('all', new Date(all[best][0].time))
|
|
77
|
-
console.log('data', new Date(data[0].time), new Date(data[data.length -1].time))
|
|
78
|
-
console.log('newTimes', new Date(newTimes[0]), new Date(newTimes[newTimes.length -1]))
|
|
79
|
-
console.log('sourceTimes', new Date(sourceTimes[0]), new Date(sourceTimes[sourceTimes.length -1]))
|
|
80
|
-
*/
|
|
81
72
|
const result = new Array(newTimes.length);
|
|
82
73
|
newTimes.forEach((time, i) => {
|
|
83
74
|
if (time > data[data.length - 1].time) {
|
|
@@ -132,17 +123,14 @@ class CommonTimestamps {
|
|
|
132
123
|
return result;
|
|
133
124
|
}
|
|
134
125
|
static makeTimeArray(startIsoString, endIsoString, resolution) {
|
|
135
|
-
const duration =
|
|
136
|
-
const localStartTime =
|
|
137
|
-
const localEndTime =
|
|
126
|
+
const duration = Duration.fromISO(resolution).toMillis();
|
|
127
|
+
const localStartTime = DateTime.fromISO(startIsoString);
|
|
128
|
+
const localEndTime = DateTime.fromISO(endIsoString);
|
|
138
129
|
// Convert start and end time to UTC time using Luxon
|
|
139
130
|
const utcStartTime = localStartTime.toUTC();
|
|
140
131
|
const utcEndTime = localEndTime.toUTC();
|
|
141
132
|
// Calculate time distance in milliseconds
|
|
142
133
|
const timeDistance = utcEndTime.toMillis() - utcStartTime.toMillis();
|
|
143
|
-
if (timeDistance < duration) {
|
|
144
|
-
console.log("timeDistance", timeDistance, duration, startIsoString, endIsoString);
|
|
145
|
-
}
|
|
146
134
|
// Create an array with time distance duration in UTC time using Luxon
|
|
147
135
|
const timeSteps = [];
|
|
148
136
|
for (let i = 0; i <= timeDistance; i += duration) {
|
|
@@ -159,7 +147,7 @@ class CommonTimestamps {
|
|
|
159
147
|
let minPeriod = "";
|
|
160
148
|
const keys = Object.keys(all);
|
|
161
149
|
keys.forEach((period) => {
|
|
162
|
-
const dur =
|
|
150
|
+
const dur = Duration.fromISO(period);
|
|
163
151
|
if (dur.as("minutes") < min) {
|
|
164
152
|
min = dur.as("minutes");
|
|
165
153
|
minPeriod = period;
|
|
@@ -172,7 +160,7 @@ class CommonTimestamps {
|
|
|
172
160
|
let minPeriod = "";
|
|
173
161
|
Object.keys(all).forEach((key) => {
|
|
174
162
|
Object.keys(all[key]).forEach((period) => {
|
|
175
|
-
const dur =
|
|
163
|
+
const dur = Duration.fromISO(period);
|
|
176
164
|
if (dur.as("minutes") < min) {
|
|
177
165
|
min = dur.as("minutes");
|
|
178
166
|
minPeriod = period;
|
|
@@ -182,5 +170,4 @@ class CommonTimestamps {
|
|
|
182
170
|
return minPeriod;
|
|
183
171
|
}
|
|
184
172
|
}
|
|
185
|
-
exports.CommonTimestamps = CommonTimestamps;
|
|
186
173
|
//# sourceMappingURL=CommonTimestamps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommonTimestamps.js","sourceRoot":"","sources":["../../src/router/services/CommonTimestamps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.EurostatAPI = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const path_1 = require("path");
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
6
3
|
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = '0';
|
|
7
|
-
class EurostatAPI {
|
|
4
|
+
export class EurostatAPI {
|
|
8
5
|
constructor() {
|
|
9
6
|
this.countries = [];
|
|
10
7
|
this.fuels = {
|
|
@@ -19,8 +16,8 @@ class EurostatAPI {
|
|
|
19
16
|
['TJ_GCV', 10 ** 12],
|
|
20
17
|
['THS_T', 41868000000000], // joules per thousand metric tons of oil equivalent
|
|
21
18
|
]);
|
|
22
|
-
const countryPath =
|
|
23
|
-
const countriesString =
|
|
19
|
+
const countryPath = join(__dirname, '..', 'config/countries.json');
|
|
20
|
+
const countriesString = readFileSync(countryPath, 'utf-8');
|
|
24
21
|
this.countries = JSON.parse(countriesString);
|
|
25
22
|
}
|
|
26
23
|
convertToMWh(value, unit) {
|
|
@@ -30,7 +27,6 @@ class EurostatAPI {
|
|
|
30
27
|
async fetchData(url, type, unit) {
|
|
31
28
|
const response = await fetch(url);
|
|
32
29
|
const data = await response.json();
|
|
33
|
-
console.log(data, type, unit);
|
|
34
30
|
try {
|
|
35
31
|
const time = Object.keys(data.dimension.time.category.index);
|
|
36
32
|
return {
|
|
@@ -56,18 +52,14 @@ class EurostatAPI {
|
|
|
56
52
|
const select = `${chartType}/${freq}.${nrg_bal}.${siec}.${unit}`;
|
|
57
53
|
const rest = `?format=JSON&lang=en&startPeriod=2015-01&endPeriod=2050-12`;
|
|
58
54
|
const url = `${baseUrl}${select}${geo}${rest}`;
|
|
59
|
-
// console.log(url)
|
|
60
55
|
promises.push(this.fetchData(url, type, unit));
|
|
61
56
|
}
|
|
62
57
|
const res = await Promise.all(promises);
|
|
63
|
-
// console.log('---res---', res)
|
|
64
58
|
let merged = {};
|
|
65
59
|
res.forEach(item => {
|
|
66
60
|
merged = { ...merged, ...item };
|
|
67
61
|
});
|
|
68
|
-
// console.log('---merged----', merged)
|
|
69
62
|
return merged; // this.removeElGas(merged);
|
|
70
63
|
}
|
|
71
64
|
}
|
|
72
|
-
exports.EurostatAPI = EurostatAPI;
|
|
73
65
|
//# sourceMappingURL=Eurostat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Eurostat.js","sourceRoot":"","sources":["../../src/router/services/Eurostat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const Eurostat_1 = require("./Eurostat");
|
|
11
|
-
const queryoptions_1 = require("../interfaces/queryoptions");
|
|
12
|
-
class LoadService {
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { EntsoeLoader } from "./Loader";
|
|
4
|
+
import { EdifactParser } from "./ParseEdifact";
|
|
5
|
+
import { ParseInstalled } from "./ParseInstalled";
|
|
6
|
+
import { CommonTimestamps } from "./CommonTimestamps";
|
|
7
|
+
import { EurostatAPI } from "./Eurostat";
|
|
8
|
+
import { Format } from "../interfaces/queryoptions";
|
|
9
|
+
export class LoadService {
|
|
13
10
|
constructor(loaderConfig) {
|
|
14
11
|
this.loaderConfig = loaderConfig;
|
|
15
12
|
this.country = '';
|
|
16
|
-
const typesPath =
|
|
17
|
-
const types = JSON.parse(
|
|
18
|
-
this.loader = new
|
|
19
|
-
this.parser = new
|
|
20
|
-
this.parseInstalled = new
|
|
13
|
+
const typesPath = join(__dirname, '../config/types.json'); // Set the path to your config file
|
|
14
|
+
const types = JSON.parse(readFileSync(typesPath, 'utf8')); // Read the config file from disk
|
|
15
|
+
this.loader = new EntsoeLoader(loaderConfig);
|
|
16
|
+
this.parser = new EdifactParser(types);
|
|
17
|
+
this.parseInstalled = new ParseInstalled(types);
|
|
21
18
|
}
|
|
22
19
|
async getPower(countryCode, year, month, queryOptions) {
|
|
23
20
|
const wanted = ['generation', 'price', 'consumption'];
|
|
24
|
-
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) ===
|
|
21
|
+
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) === Format.SOURCES) {
|
|
25
22
|
return this.loader.makeUrls(wanted, countryCode, year, month);
|
|
26
23
|
}
|
|
27
24
|
const edifactAsJson = await this.loader.load(wanted, countryCode, year, month, queryOptions);
|
|
28
|
-
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) ===
|
|
25
|
+
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) === Format.EDIJSON) {
|
|
29
26
|
return edifactAsJson;
|
|
30
27
|
}
|
|
31
28
|
const parsed = await this.parser.parseAll(edifactAsJson);
|
|
32
|
-
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) ===
|
|
29
|
+
if ((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) === Format.KEYVALUE) {
|
|
33
30
|
return parsed;
|
|
34
31
|
}
|
|
35
32
|
const startMonth = (new Date(Date.UTC(year, month - 1))).toISOString();
|
|
36
33
|
const endMonth = (new Date(Date.UTC(year, month))).toISOString();
|
|
37
|
-
const ready =
|
|
34
|
+
const ready = CommonTimestamps.transform(parsed, startMonth, endMonth);
|
|
38
35
|
return ready;
|
|
39
36
|
}
|
|
40
37
|
async getInstalled(countryCode, reload) {
|
|
@@ -67,7 +64,7 @@ class LoadService {
|
|
|
67
64
|
};
|
|
68
65
|
}
|
|
69
66
|
async getFossil(country) {
|
|
70
|
-
const eurostat = new
|
|
67
|
+
const eurostat = new EurostatAPI();
|
|
71
68
|
return await eurostat.load(country);
|
|
72
69
|
}
|
|
73
70
|
async getCountrydata(country, reload) {
|
|
@@ -79,5 +76,4 @@ class LoadService {
|
|
|
79
76
|
};
|
|
80
77
|
}
|
|
81
78
|
}
|
|
82
|
-
exports.LoadService = LoadService;
|
|
83
79
|
//# sourceMappingURL=LoadService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadService.js","sourceRoot":"","sources":["../../src/router/services/LoadService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
|
-
const date_fns_1 = require("date-fns");
|
|
8
|
-
class EntsoeLoader {
|
|
1
|
+
import { parseStringPromise } from 'xml2js';
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { add, format, sub } from 'date-fns';
|
|
5
|
+
export class EntsoeLoader {
|
|
9
6
|
constructor(loaderConfig) {
|
|
10
7
|
this.loaderConfig = loaderConfig;
|
|
11
8
|
this.config = loaderConfig;
|
|
@@ -23,14 +20,14 @@ class EntsoeLoader {
|
|
|
23
20
|
}
|
|
24
21
|
makeUrls(wanted, countryCode, year, month) {
|
|
25
22
|
let start = new Date(Date.UTC(year, month - 1));
|
|
26
|
-
start =
|
|
23
|
+
start = sub(start, { hours: 3 });
|
|
27
24
|
let end = new Date(Date.UTC(year, month));
|
|
28
|
-
end =
|
|
29
|
-
const periodStart =
|
|
30
|
-
const periodEnd =
|
|
31
|
-
const hydroStart =
|
|
32
|
-
const hydroPeriodStart =
|
|
33
|
-
const hydroPeriodEnd =
|
|
25
|
+
end = add(end, { hours: 3 });
|
|
26
|
+
const periodStart = format(start, 'yyyyMMddHHmm');
|
|
27
|
+
const periodEnd = format(end, 'yyyyMMddHHmm');
|
|
28
|
+
const hydroStart = sub(start, { days: 7 });
|
|
29
|
+
const hydroPeriodStart = format(hydroStart, 'yyyyMMddHHmm');
|
|
30
|
+
const hydroPeriodEnd = format(add(hydroStart, { days: 380 }), 'yyyyMMddHHmm');
|
|
34
31
|
let priceCountryCode = countryCode;
|
|
35
32
|
//germany luxemburg
|
|
36
33
|
if (countryCode === '10Y1001A1001A83F' || countryCode === '10YLU-CEGEDEL-NQ') {
|
|
@@ -86,13 +83,13 @@ class EntsoeLoader {
|
|
|
86
83
|
const simpleUrl = url.replace(/[\W_]+/g, "_");
|
|
87
84
|
let filename;
|
|
88
85
|
if (this.config.cacheDir) {
|
|
89
|
-
filename =
|
|
86
|
+
filename = join(this.config.cacheDir, 'entsoe', simpleUrl + '.json');
|
|
90
87
|
}
|
|
91
88
|
try {
|
|
92
89
|
if (reload || !filename) {
|
|
93
90
|
throw Error('go for full reload');
|
|
94
91
|
}
|
|
95
|
-
const jsonString = await
|
|
92
|
+
const jsonString = await readFile(filename, 'utf-8');
|
|
96
93
|
return JSON.parse(jsonString);
|
|
97
94
|
}
|
|
98
95
|
catch (e) {
|
|
@@ -102,9 +99,9 @@ class EntsoeLoader {
|
|
|
102
99
|
return Promise.reject(new Error(`${response.status} ${response.statusText}`));
|
|
103
100
|
}
|
|
104
101
|
const data = await response.text();
|
|
105
|
-
const json = await
|
|
102
|
+
const json = await parseStringPromise(data);
|
|
106
103
|
if (filename) {
|
|
107
|
-
|
|
104
|
+
writeFile(filename, JSON.stringify(json), 'utf-8');
|
|
108
105
|
}
|
|
109
106
|
return json;
|
|
110
107
|
}
|
|
@@ -116,5 +113,4 @@ class EntsoeLoader {
|
|
|
116
113
|
}, {});
|
|
117
114
|
}
|
|
118
115
|
}
|
|
119
|
-
exports.EntsoeLoader = EntsoeLoader;
|
|
120
116
|
//# sourceMappingURL=Loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../src/router/services/Loader.ts"],"names":[],"mappings":"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"}
|