improve conditions
This commit is contained in:
@@ -49,17 +49,17 @@
|
|||||||
"hilo 1": {
|
"hilo 1": {
|
||||||
"tracks": [
|
"tracks": [
|
||||||
"audio/hi_01.flac",
|
"audio/hi_01.flac",
|
||||||
"%cory hi",
|
"%cory weather.temp.max",
|
||||||
"audio/lo_01.flac",
|
"audio/lo_01.flac",
|
||||||
"%cory lo"
|
"%cory weather.temp.min"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hilo 2": {
|
"hilo 2": {
|
||||||
"tracks": [
|
"tracks": [
|
||||||
"audio/hi_02.flac",
|
"audio/hi_02.flac",
|
||||||
"%cory hi",
|
"%cory weather.temp.max",
|
||||||
"audio/lo_02.flac",
|
"audio/lo_02.flac",
|
||||||
"%cory lo"
|
"%cory weather.temp.min"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rain 1": {
|
"rain 1": {
|
||||||
|
@@ -77,7 +77,7 @@ function processSequence(sequence: Sequence, currentWeather: CurrentWeather): st
|
|||||||
|
|
||||||
function processSegment(segment: SegmentName, currentWeather: CurrentWeather): string[] {
|
function processSegment(segment: SegmentName, currentWeather: CurrentWeather): string[] {
|
||||||
if (!(segment in config.segments)) {
|
if (!(segment in config.segments)) {
|
||||||
return processSequence(config.sequences[segment], currentWeather);
|
return (config.sequences[segment].conditions || []).every(c => conditionIsMet(c, currentWeather)) ? processSequence(config.sequences[segment], currentWeather) : [];
|
||||||
}
|
}
|
||||||
const potentialSequences: SequenceName[] = config.segments[segment].filter(s => (config.sequences[s].conditions || []).every(c => conditionIsMet(c, currentWeather)));
|
const potentialSequences: SequenceName[] = config.segments[segment].filter(s => (config.sequences[s].conditions || []).every(c => conditionIsMet(c, currentWeather)));
|
||||||
if (potentialSequences.length === 0) {
|
if (potentialSequences.length === 0) {
|
||||||
|
@@ -83,7 +83,7 @@ describe('sequencer', () => {
|
|||||||
|
|
||||||
it('can include tracks conditionally', async () => {
|
it('can include tracks conditionally', async () => {
|
||||||
expect(await Sequencer({
|
expect(await Sequencer({
|
||||||
programs: [['segment 1', 'segment 2']],
|
programs: [['segment 1', 'sequence 1', 'segment 2', 'sequence 2']],
|
||||||
segments: {
|
segments: {
|
||||||
'segment 1': ['sequence 1'],
|
'segment 1': ['sequence 1'],
|
||||||
'segment 2': ['sequence 2']
|
'segment 2': ['sequence 2']
|
||||||
@@ -104,7 +104,7 @@ describe('sequencer', () => {
|
|||||||
},
|
},
|
||||||
voices: {},
|
voices: {},
|
||||||
weather: dummyWeather
|
weather: dummyWeather
|
||||||
})).to.be.ordered.members(['seq1.flac']);
|
})).to.be.ordered.members(['seq1.flac', 'seq1.flac']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user