1
1
'use strict'
2
2
3
3
const parseIsoDuration = require ( 'parse-iso-duration' )
4
+ const sortBy = require ( 'lodash/sortBy' )
4
5
5
6
const parseJourneyLeg = ( ctx , l ) => { // l = leg
6
7
const { profile, opt} = ctx
@@ -14,14 +15,14 @@ const parseJourneyLeg = (ctx, l) => { // l = leg
14
15
}
15
16
16
17
// todo: does `dest.rtAlighting` actually if the arrival is cancelled?
17
- const arr = profile . parseWhen ( ctx , dest . date , dest . rtDate , dest . time , dest . rtTime , dest . rtTz , ! dest . rtAlighting )
18
+ const arr = profile . parseWhen ( ctx , dest . date , dest . rtDate , dest . time , dest . rtTime , dest . rtTz , dest . rtAlighting === false )
18
19
res . arrival = arr . when
19
20
res . plannedArrival = arr . plannedWhen
20
21
res . arrivalDelay = arr . delay
21
22
if ( arr . prognosedWhen ) res . prognosedArrival = arr . prognosedWhen
22
23
23
24
// todo: does `orig.rtBoarding` actually if the departure is cancelled?
24
- const dep = profile . parseWhen ( ctx , orig . date , orig . rtDate , orig . time , orig . rtTime , orig . tz , ! orig . rtBoarding )
25
+ const dep = profile . parseWhen ( ctx , orig . date , orig . rtDate , orig . time , orig . rtTime , orig . tz , orig . rtBoarding === false )
25
26
res . departure = dep . when
26
27
res . plannedDeparture = dep . plannedWhen
27
28
res . departureDelay = dep . delay
@@ -62,7 +63,8 @@ const parseJourneyLeg = (ctx, l) => { // l = leg
62
63
res . direction = l . direction && profile . parseStationName ( ctx , l . direction ) || null
63
64
64
65
if ( opt . stopovers && l . stops ) {
65
- res . stopovers = l . stops . map ( st => profile . parseStopover ( ctx , st ) )
66
+ res . stopovers = sortBy ( l . stops , 'routeIdx' )
67
+ . map ( st => profile . parseStopover ( ctx , st ) )
66
68
}
67
69
}
68
70
0 commit comments