UNPKG

@showbridge/lib

Version:

Main library for showbridge protocol router

27 lines (26 loc) 950 B
import { has } from 'lodash-es'; import { logger } from '../utils/index.js'; import Trigger from './trigger.js'; class OSCAddressTrigger extends Trigger { test(msg) { if (msg.messageType !== 'osc') { logger.error('trigger: osc-address only works with osc messages'); return false; } if (!has(this.params, 'address')) { logger.error('trigger: osc-address has no address configured'); return false; } // NOTE(jwetzell) convert osc wildcard into regex const regexString = this.params.address .replaceAll('{', '(') .replaceAll('}', ')') .replaceAll(',', '|') .replaceAll('[!', '[^') .replaceAll('*', '[^/]+') .replaceAll('?', '.'); const addressRegex = new RegExp(`^${regexString}$`); return addressRegex.test(msg.address); } } export default OSCAddressTrigger;