@headwindsimulations/api-client
v1.2.2
Published
Client library for the Headwind Simulations API
Downloads
86
Maintainers
Readme
Headwind Simulations API Client for FlyByWire API
This is a unofficial JavaScript client for the FlyByWire API and changed for Headwind Simulations needs. The library supports both JavaScript and TypeScript. If you want to use the FlyByWire API stick to the Official API-Client: https://github.com/flybywiresim/api-client
Installation
Install the client library using npm:
$ npm install --save @headwindsimulations/api-client
Usage
Initializing the client
import { NXApi } from '@headwindsimulations/api-client';
NXApi.url = new URL('http://localhost:3000');
By default, the URL is set to https://api.flybywiresim.com
. If this is the desired URL this step can be omitted.
METAR
import { Metar } from '@headwindsimulations/api-client';
Metar.get(icao, source)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
icao
is a string of the the airport ICAO code to get the METAR for.source
is the selected datasource for the METAR and is optional. Valid sources are:- vatsim
- ms
- ivao
- pilotedge
TAF
import { Taf } from '@headwindsimulations/api-client';
Taf.get(icao, source)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
icao
is a string of the the airport ICAO code to get the TAF for.source
is the selected datasource for the TAF and is optional. Valid sources are:- aviationweather
- faa
ATIS
import { Atis } from '@headwindsimulations/api-client';
Atis.get(icao, source)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
icao
is a string of the the airport ICAO code to get the ATIS for.source
is the selected datasource for the ATIS and is optional. Valid sources are:- faa
- vatsim
- ivao
- pilotedge
Airport
import { Airport } from '@headwindsimulations/api-client';
Airport.get(icao)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
icao
is a string of the the airport ICAO code to search for.
ATC
import { Atis } from '@headwindsimulations/api-client';
ATC.get(source)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
source
is the selected datasource for the ATC. Valid sources are:- vatsim
- ivao
TELEX connection handling
Connect to TELEX system
import { Telex } from '@headwindsimulations/api-client';
Telex.connect(status)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
status
is of typeAircraftStatus
and contains information about the current flight.
The backend might block certain flight numbers from being used for various reasons.
Update the TELEX status
import { Telex } from '@headwindsimulations/api-client';
Telex.update(status)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
status
is of typeAircraftStatus
and contains information about the current flight.
The status has to updated every 6 minutes for the connection to stay alive. It is recommended to update the status every 15 seconds for a usable live map. The status can only be updated once a connection has been established.
Disconnect from TELEX system
import { Telex } from '@headwindsimulations/api-client';
Telex.disconnect()
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
The connection can only be disconnected once it has been established. This releases the flight number for reuse and removes the flight from the live map.
TELEX message handling
Sending a message
import { Telex } from '@headwindsimulations/api-client';
Telex.sendMessage(recipient, message)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
recipient
is a string containing the flight number of the recipient flight.message
is a string containing the message to send.
Messages will be filtered for profanity in the backend.
Receiving messages
import { Telex } from '@headwindsimulations/api-client';
Telex.fetchMessages()
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
Messages can only be received once and will be acknowledged by this transaction.
TELEX Querying
Fetch a single page of active connections
import { Telex } from '@headwindsimulations/api-client';
Telex.fetchConnections(skip, take, bounds)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
skip
is a number and tells the backend to skip the first n connections.take
is a number and tells the backend how many connections to send.bounds
is an optional bounding box. Query only connections within this area.
take
and skip
are used to control the pagination. A maximum of 100 entries can be fetched at a time.
Fetch all active connections
import { Telex } from '@headwindsimulations/api-client';
Telex.fetchAllConnections(bounds, callback)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
bounds
is an optional bounding box. Query only connections within this area.callback
gets called after every fetched page.
Fetch a certain connection
import { Telex } from '@headwindsimulations/api-client';
Telex.fetchConnection(id)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
id
is the unique identifier of the connection.
Find all active connections matching a flight number
import { Telex } from '@headwindsimulations/api-client';
Telex.findConnection(flight)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
flight
is the flight number to search for.
Count active connections
import { Telex } from '@headwindsimulations/api-client';
Telex.countConnections()
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
Github
Get the newest commit for a branch
import { GitVersions } from '@headwindsimulations/api-client';
GitVersions.getNewestCommit(user, repo, branch)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
user
the owner of the repository.repo
the repository.branch
the requested branch.
Get all releases for a repository
import { GitVersions } from '@headwindsimulations/api-client';
GitVersions.getReleases(user, repo)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
user
the owner of the repository.repo
the repository.
Get open pull requests for a repository
import { GitVersions } from '@headwindsimulations/api-client';
GitVersions.getPulls(user, repo)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
user
the owner of the repository.repo
the repository.
Get the artifact URL for a pull request
import { GitVersions } from '@headwindsimulations/api-client';
GitVersions.getArtifact(user, repo, pull)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
user
the owner of the repository.repo
the repository.pull
the number of the pull request.
Charts
Get the charts for an airport
import { Charts } from '@headwindsimulations/api-client';
Charts.get(icao, source)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
icao
is a string of the the airport ICAO code to search for.
GNSS
Fetch data for all GNSS satellites
import { Atis } from '@headwindsimulations/api-client';
GNSS.get()
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
Hoppie
Send the request
import { Hoppie } from '@headwindsimulations/api-client';
const body {
logon: 'XXXXXXXXX',
from: 'TEST0',
to: 'TEST0',
type: 'poll'
}
Hoppie.post(body)
.then(data => {
console.log(data);
}).catch(err => {
console.error(err);
});
License
This software is licensed under the MIT license.
Credits
Based on the Open-Source FlyByWire Simulations API-Client.