+4
-4
config/config.example.json5
+4
-4
config/config.example.json5
···
49
49
"hilo 1": {
50
50
"tracks": [
51
51
"audio/hi_01.flac",
52
-
"%cory hi",
52
+
"%cory weather.temp.max",
53
53
"audio/lo_01.flac",
54
-
"%cory lo"
54
+
"%cory weather.temp.min"
55
55
]
56
56
},
57
57
"hilo 2": {
58
58
"tracks": [
59
59
"audio/hi_02.flac",
60
-
"%cory hi",
60
+
"%cory weather.temp.max",
61
61
"audio/lo_02.flac",
62
-
"%cory lo"
62
+
"%cory weather.temp.min"
63
63
]
64
64
},
65
65
"rain 1": {
+1
-1
src/sequencer.ts
+1
-1
src/sequencer.ts
···
77
77
78
78
function processSegment(segment: SegmentName, currentWeather: CurrentWeather): string[] {
79
79
if (!(segment in config.segments)) {
80
-
return processSequence(config.sequences[segment], currentWeather);
80
+
return (config.sequences[segment].conditions || []).every(c => conditionIsMet(c, currentWeather)) ? processSequence(config.sequences[segment], currentWeather) : [];
81
81
}
82
82
const potentialSequences: SequenceName[] = config.segments[segment].filter(s => (config.sequences[s].conditions || []).every(c => conditionIsMet(c, currentWeather)));
83
83
if (potentialSequences.length === 0) {
+2
-2
test/sequencer.test.ts
+2
-2
test/sequencer.test.ts
···
83
83
84
84
it('can include tracks conditionally', async () => {
85
85
expect(await Sequencer({
86
-
programs: [['segment 1', 'segment 2']],
86
+
programs: [['segment 1', 'sequence 1', 'segment 2', 'sequence 2']],
87
87
segments: {
88
88
'segment 1': ['sequence 1'],
89
89
'segment 2': ['sequence 2']
···
104
104
},
105
105
voices: {},
106
106
weather: dummyWeather
107
-
})).to.be.ordered.members(['seq1.flac']);
107
+
})).to.be.ordered.members(['seq1.flac', 'seq1.flac']);
108
108
});
109
109
});
110
110