3.1 KiB
Migrating to hafas-client@5
If you use Node 8
("Carbon")…
…migrate to Node 10
("Dubnium"), sorry. Node 8
is out of maintenance now.
new fields for departure/arrival time & delays
An arrival/departure now looks like this:
{
when: null, // realtime/prognosed
plannedWhen: '2019-10-10T10:10+10:00',
platform: '3', // realtime/prognosed
plannedPlatform: '4'
}
A stopover/journey leg now will look like this:
{
arrival: null, // realtime/prognosed
plannedArrival: '2019-10-10T10:10+10:00',
arrivalDelay: null,
arrivalPlatform: '3', // realtime/prognosed
plannedArrivalPlatform: '4',
departure: '2019-10-10T10:12+10:00', // realtime/prognosed
plannedDeparture: '2019-10-10T10:10+10:00',
departureDelay: 120, // seconds
departurePlatform: null, // realtime/prognosed
plannedDeparturePlatform: null
}
If the same stopover/journey leg is cancelled: true
, it will look like this:
{
arrival: null,
prognosedArrival: null,
plannedArrival: '2019-10-10T10:10+10:00',
arrivalDelay: null,
arrivalPlatform: null,
prognosedArrivalPlatform: '3',
plannedArrivalPlatform: '4',
departure: null,
prognosedDeparture: '2019-10-10T10:12+10:00',
plannedDeparture: '2019-10-10T10:10+10:00',
departureDelay: 120, // seconds
departurePlatform: null,
prognosedDeparturePlatform: null,
plannedDeparturePlatform: null
}
If you use journeys()
…
…with the walkingSpeed
option and a custom profile, add journeysWalkingSpeed
to your profile. 937583e
…without the results
option, but expect a certain number of results, you must pass results
now. 0045587
If you use departures()
/arrivals()
with the BVG profile…
With the latest protocol version, the BVG endpoint doesn't support these options anymore:
stopovers
– Fetch & parse previous/next stopovers? Default:false
includeRelatedStations
– Fepartures at related stations, e.g. those that belong together on the metro map? Default:true
2d72391
If you use a custom profile…
Let's assume you have parse function looking like this:
const createParseLine = (profile, opt, data) => (rawLine) => {
const operator = data.operators[rawLine.oprX] || null
if (operator && operator.name === 'foo') {
return {
type: 'line',
name: 'really special tram line',
mode: 'tram',
product: 'special-tram',
operator
}
}
return defaultParseLine(rawLine)
}
Adapt your parse function like this:
const createParseLine = (profile, opt, _) => (rawLine) => {
- const operator = data.operators[rawLine.oprX] || null
+ const operator = rawLine.operator || null
See also #127
.
If you use icons
in parseWarning
/parseHint
, adapt the function(s) to take an object data
as the first argument. You can access the list of parsed icons via data.icons
, parsed warnings via data.warnings
, etc. a229205 b36f0e3
Other breaking changes
journey.price
will benull
if there's no pricing data returned by the endpoint, instead of{amount: null}
. 8fe277d