mirror of
https://github.com/dotFionn/iassure-wx.git
synced 2026-03-21 06:22:56 -05:00
move types to shared, add first stuff
This commit is contained in:
63
backend/package-lock.json
generated
63
backend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "app",
|
||||
"version": "1.0.0",
|
||||
"version": "1.2.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "app",
|
||||
"version": "1.0.0",
|
||||
"version": "1.2.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"axios": "^1.3.4",
|
||||
@@ -25,6 +25,7 @@
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-n": "^15.2.5",
|
||||
"eslint-plugin-promise": "^6.0.1",
|
||||
"resolve-tspaths": "^0.8.8",
|
||||
"rimraf": "^3.0.2",
|
||||
"tsc-watch": "^5.0.3",
|
||||
"typescript": "^4.7.4"
|
||||
@@ -460,6 +461,15 @@
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-colors": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
|
||||
"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
@@ -719,6 +729,15 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
|
||||
"integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@@ -2882,6 +2901,23 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve-tspaths": {
|
||||
"version": "0.8.13",
|
||||
"resolved": "https://registry.npmjs.org/resolve-tspaths/-/resolve-tspaths-0.8.13.tgz",
|
||||
"integrity": "sha512-eHlHinC2qt3jQLFiZyUE4HXZOTlT1abHO2fb+OI9Ybsn8wdhKiAtIFVy1+QVTaIQNphCLvm42EkqJt/+ZAA8Sw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-colors": "4.1.3",
|
||||
"commander": "10.0.0",
|
||||
"fast-glob": "3.2.12"
|
||||
},
|
||||
"bin": {
|
||||
"resolve-tspaths": "dist/main.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": ">=3.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/reusify": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
|
||||
@@ -3765,6 +3801,12 @@
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ansi-colors": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
|
||||
"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
@@ -3973,6 +4015,12 @@
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
|
||||
"integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@@ -5564,6 +5612,17 @@
|
||||
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
||||
"dev": true
|
||||
},
|
||||
"resolve-tspaths": {
|
||||
"version": "0.8.13",
|
||||
"resolved": "https://registry.npmjs.org/resolve-tspaths/-/resolve-tspaths-0.8.13.tgz",
|
||||
"integrity": "sha512-eHlHinC2qt3jQLFiZyUE4HXZOTlT1abHO2fb+OI9Ybsn8wdhKiAtIFVy1+QVTaIQNphCLvm42EkqJt/+ZAA8Sw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-colors": "4.1.3",
|
||||
"commander": "10.0.0",
|
||||
"fast-glob": "3.2.12"
|
||||
}
|
||||
},
|
||||
"reusify": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"predev": "npm install && rimraf dist/*",
|
||||
"start": "node --inspect=0.0.0.0:9229 --es-module-specifier-resolution=node dist/app.js",
|
||||
"prestart": "resolve-tspaths --out \"/opt/backend/dist/backend/src\"",
|
||||
"start": "node --inspect=0.0.0.0:9229 dist/backend/src/app.js",
|
||||
"dev": "tsc-watch --onSuccess \"npm run start\" --onFailure \"echo WHOOPS! Server compilation failed\""
|
||||
},
|
||||
"keywords": [],
|
||||
@@ -32,6 +33,7 @@
|
||||
"eslint-plugin-promise": "^6.0.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"tsc-watch": "^5.0.3",
|
||||
"resolve-tspaths": "^0.8.8",
|
||||
"typescript": "^4.7.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
import fs from 'fs';
|
||||
import { WxConfig } from '@shared/types/config.types';
|
||||
|
||||
export interface WxConfig {
|
||||
regions: WxRegion[];
|
||||
}
|
||||
|
||||
export interface WxRegion {
|
||||
identifier: string;
|
||||
fixes: WxFix[];
|
||||
}
|
||||
|
||||
export interface WxFix {
|
||||
name: string;
|
||||
lat: number;
|
||||
lon: number;
|
||||
}
|
||||
|
||||
export function getConfig(): WxConfig {
|
||||
const data = JSON.parse(fs.readFileSync('/opt/wx-config.json').toString());
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import configService, { WxConfig, WxRegion } from './config.service';
|
||||
import configService from './config.service';
|
||||
import { WxConfig, WxRegion } from '@shared/types/config.types';
|
||||
|
||||
export function getRegions(): WxConfig['regions'] {
|
||||
return configService.getConfig().regions;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import axios from 'axios';
|
||||
import { WxFix } from './config.service';
|
||||
import regionsService from './regions.service';
|
||||
|
||||
import { WxFix } from '@shared/types/config.types';
|
||||
import { WxFixData, WxData } from '@shared/types/wx.types';
|
||||
|
||||
const cachedData: { [key: string]: WxData } = {};
|
||||
|
||||
const qnhLevelMapping = {
|
||||
@@ -33,34 +35,6 @@ for (const qnh of Object.keys(qnhLevelMapping)) {
|
||||
}
|
||||
}
|
||||
|
||||
interface WxLevelData {
|
||||
'T(K)': string;
|
||||
windspeed: string;
|
||||
windhdg: string;
|
||||
}
|
||||
|
||||
export interface WxFixData {
|
||||
coords: {
|
||||
lat: string;
|
||||
long: string;
|
||||
};
|
||||
|
||||
levels: {
|
||||
[key: string]: WxLevelData;
|
||||
}
|
||||
}
|
||||
|
||||
export interface WxData {
|
||||
info: {
|
||||
date: string;
|
||||
datestring: string;
|
||||
legal: string;
|
||||
};
|
||||
data: {
|
||||
[key: string]: WxFixData;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getDataAtFix(fix: WxFix, index: number): Promise<WxFixData> {
|
||||
const response = await axios.get(`https://api.open-meteo.com/v1/forecast?latitude=${fix.lat}&longitude=${fix.lon}&windspeed_unit=kn&forecast_days=1&hourly=${requestedData.join(',')}`);
|
||||
const hourlyData = response.data.hourly;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"compileOnSave": false,
|
||||
"compilerOptions": {
|
||||
"outDir": "dist",
|
||||
"baseUrl": "./src",
|
||||
"module": "ES2022",
|
||||
"target": "ES2022",
|
||||
"lib": [
|
||||
@@ -15,6 +16,9 @@
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"moduleResolution": "Node",
|
||||
"paths": {
|
||||
"@shared/*": ["../../shared/src/*"]
|
||||
}
|
||||
},
|
||||
"watchOptions": {
|
||||
"watchFile": "fixedpollinginterval"
|
||||
|
||||
Reference in New Issue
Block a user