diff --git a/package-lock.json b/package-lock.json index 7f682d5..612d600 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,16 @@ { "name": "@flybywiresim/api-client", - "version": "0.15.0", + "version": "0.16.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@flybywiresim/api-client", - "version": "0.15.0", + "version": "0.16.2", "license": "MIT", + "dependencies": { + "axios": "^0.21.4" + }, "devDependencies": { "@flybywiresim/eslint-config": "^0.2.2", "@rollup/plugin-commonjs": "^20.0.0", @@ -16,7 +19,6 @@ "@types/es6-promise": "^3.3.0", "@types/jest": "^27.0.2", "@typescript-eslint/parser": "^4.31.2", - "axios": "^0.21.4", "eslint": "^7.32.0", "eslint-plugin-jest": "^24.4.2", "rollup": "^2.57.0", @@ -1994,7 +1996,6 @@ "node_modules/axios": { "version": "0.21.4", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, "dependencies": { "follow-redirects": "^1.14.0" } @@ -3694,7 +3695,6 @@ "node_modules/follow-redirects": { "version": "1.14.4", "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", - "dev": true, "funding": [ { "type": "individual", @@ -9809,7 +9809,6 @@ "axios": { "version": "0.21.4", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, "requires": { "follow-redirects": "^1.14.0" } @@ -11111,8 +11110,7 @@ }, "follow-redirects": { "version": "1.14.4", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", - "dev": true + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" }, "form-data": { "version": "3.0.1", diff --git a/src/apis/gnss.ts b/src/apis/gnss.ts deleted file mode 100644 index 82b7bee..0000000 --- a/src/apis/gnss.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { NXApi } from '../index'; -import { get } from '../utils'; - -export declare class GNSSResponse { - name: string; - - id: string; - - epoch: Date; - - meanMotion: number; - - eccentricity: number; - - inclination: number; - - raOfAscNode: number; - - argOfPericenter: number; - - meanAnomaly: number; - - ephemerisType: number; - - classificationType: string; - - noradCatId: number; - - elementSetNo: number; - - revAtEpoch: number; - - bstar: number; - - meanMotionDot: number; - - meanMotionDdot: number; -} - -export class GNSS { - public static get(): Promise { - const url = new URL('/api/v1/gnss', NXApi.url); - - return get(url) - .then((res) => res.map(GNSS.mapResult)); - } - - private static mapResult(response: GNSSResponse): GNSSResponse { - return { - ...response, - epoch: new Date(response.epoch), - }; - } -} diff --git a/src/apis/index.ts b/src/apis/index.ts index 0943287..2a50100 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -3,7 +3,7 @@ export * from './atc'; export * from './atis'; export * from './charts'; export * from './git-versions'; -export * from './gnss'; +export * from './satellites'; export * from './metar'; export * from './taf'; export * from './telex'; diff --git a/src/apis/gnss.spec.ts b/src/apis/satellites.spec.ts similarity index 82% rename from src/apis/gnss.spec.ts rename to src/apis/satellites.spec.ts index 6b62540..5dba866 100644 --- a/src/apis/gnss.spec.ts +++ b/src/apis/satellites.spec.ts @@ -1,4 +1,4 @@ -import { GNSS } from './gnss'; +import { GNSS } from './satellites'; describe('GNSS', () => { test('should return a GNSS response array', async () => { diff --git a/src/apis/satellites.ts b/src/apis/satellites.ts new file mode 100644 index 0000000..6fc0ce9 --- /dev/null +++ b/src/apis/satellites.ts @@ -0,0 +1,69 @@ +import { NXApi } from '../index'; +import { get } from '../utils'; + +export enum SatelliteType { + GPS = 'gnss', + Iridium = 'iridium', + IridiumNEXT = 'iridium-NEXT', + Starlink = 'starlink', + Galileo = 'galileo', + GLONASS = 'glo-ops', + Beidou = 'beidou', + Intelsat = 'intelsat', +} + +export declare class SatelliteResponse { + name: string; + + id: string; + + epoch: Date; + + meanMotion: number; + + eccentricity: number; + + inclination: number; + + raOfAscNode: number; + + argOfPericenter: number; + + meanAnomaly: number; + + ephemerisType: number; + + classificationType: string; + + noradCatId: number; + + elementSetNo: number; + + revAtEpoch: number; + + bstar: number; + + meanMotionDot: number; + + meanMotionDdot: number; + + tleLineOne: string; + + tleLineTwo: string; +} + +export class Satellites { + public static get(type: SatelliteType): Promise { + const url = new URL(`/api/v1/satellites?type=${type}`, NXApi.url); + + return get(url) + .then((res) => res.map(Satellites.mapResult)); + } + + private static mapResult(response: SatelliteResponse): SatelliteResponse { + return { + ...response, + epoch: new Date(response.epoch), + }; + } +}