UNPKG

node-osc

Version:

pyOSC inspired library for sending and receiving OSC messages

38 lines (32 loc) 916 B
'use strict'; var osc = require('../osc.js'); function sanitizeMessage(decoded) { const message = []; message.push(decoded.address); const args = decoded.args ?? []; args.forEach(arg => { message.push(arg.value); }); return message; } function sanitizeBundle(decoded) { decoded.elements = decoded.elements.map(element => { if (element.oscType === 'bundle') return sanitizeBundle(element); else if (element.oscType === 'message') return sanitizeMessage(element); throw new Error('Malformed Packet'); }); return decoded; } function decodeAndSanitize(data, customDecode = osc.decode) { const decoded = customDecode(data); if (decoded.oscType === 'bundle') { return sanitizeBundle(decoded); } else if (decoded.oscType === 'message') { return sanitizeMessage(decoded); } else { throw new Error ('Malformed Packet'); } } module.exports = decodeAndSanitize;