add silent flag to asNumber

This commit is contained in:
Felix Roos 2022-03-13 11:41:39 +01:00
parent b5bd9260ef
commit 5d8ccdff25

View File

@ -468,8 +468,8 @@ class Pattern {
return this.fmap(func).appLeft(reify(other)) return this.fmap(func).appLeft(reify(other))
} }
_asNumber() { _asNumber(silent = false) {
return this._withEvent(event => { return this._withEvent((event) => {
const asNumber = Number(event.value); const asNumber = Number(event.value);
if (!isNaN(asNumber)) { if (!isNaN(asNumber)) {
return event.withValue(() => asNumber); return event.withValue(() => asNumber);
@ -485,8 +485,11 @@ class Pattern {
// set context type to midi to let the player know its meant as midi number and not as frequency // set context type to midi to let the player know its meant as midi number and not as frequency
return new Hap(event.whole, event.part, toMidi(event.value), { ...event.context, type: 'midi' }); return new Hap(event.whole, event.part, toMidi(event.value), { ...event.context, type: 'midi' });
} }
throw new Error('cannot parse as number: "' + event.value + '"'); if (!silent) {
}); throw new Error('cannot parse as number: "' + event.value + '"');
}
return event.withValue(() => undefined); // silent error
})._removeUndefineds();
} }
add(other) { add(other) {