@@ -40,6 +40,27 @@ export const waves = descriptions.waves.reduce((waves, wave, i) => {
40
40
return waves ;
41
41
} , [ ] as Wave [ ] ) ;
42
42
43
+ function getWave ( wave : number ) : Wave {
44
+ if ( wave >= waves . length ) {
45
+ // create dummy waves
46
+ for ( let i = waves . length ; i <= wave ; i ++ ) {
47
+ console . warn ( `faking wave ${ i + 1 } , please update the google doc` ) ;
48
+ const waveObj : Wave = {
49
+ name : `Wave ${ i + 1 } ` ,
50
+ wave : i + 1 ,
51
+ published : new Date ( ) ,
52
+ previous : waves [ i - 1 ] ,
53
+ link : waveLink ( i + 1 ) ,
54
+ } ;
55
+ if ( waveObj . previous ) {
56
+ waveObj . previous . next = waveObj ;
57
+ }
58
+ waves . push ( waveObj ) ;
59
+ }
60
+ }
61
+ return wave < 0 ? waves [ 0 ] : waves [ wave ] ;
62
+ }
63
+
43
64
export interface Revision extends SensorLike {
44
65
change : string ;
45
66
changedInWave : Wave ;
@@ -69,7 +90,7 @@ export const questions: Question[] = descriptions.questions.map((desc) => {
69
90
...desc ,
70
91
id : descriptions . id ,
71
92
anchor : toAnchor ( desc . name ) ,
72
- addedInWave : waves [ desc . addedInWave - 1 ] ,
93
+ addedInWave : getWave ( desc . addedInWave - 1 ) ,
73
94
oldRevisions : undefined ,
74
95
} ;
75
96
if ( desc . oldRevisions ) {
@@ -81,8 +102,8 @@ export const questions: Question[] = descriptions.questions.map((desc) => {
81
102
acc . push ( {
82
103
...rev ,
83
104
id : descriptions . id ,
84
- changedInWave : acc . length === 0 ? waves [ desc . addedInWave - 1 ] : acc [ acc . length - 1 ] . addedInWave ,
85
- addedInWave : waves [ rev . addedInWave - 1 ] ,
105
+ changedInWave : acc . length === 0 ? getWave ( desc . addedInWave - 1 ) : acc [ acc . length - 1 ] . addedInWave ,
106
+ addedInWave : getWave ( rev . addedInWave - 1 ) ,
86
107
} ) ;
87
108
return acc ;
88
109
} , [ ] as Revision [ ] )
0 commit comments