diff --git a/packages/osc/src/index.ts b/packages/osc/src/index.ts index 1ed8b3a..d1761d6 100644 --- a/packages/osc/src/index.ts +++ b/packages/osc/src/index.ts @@ -7,11 +7,13 @@ export * from './message'; export * from './bundle'; export function fromBuffer(bytes: Uint8Array): [OSCBundle | OSCMessage | undefined, Uint8Array | undefined] { - if (bytes[0] === 47) { // starts with '/' - return messageFromBuffer(bytes); - } else if (bytes[0] === 35) { // starts with '#' - return bundleFromBuffer(bytes) - } else { - throw new Error('bytes do not look like an OSC message or bundle'); - } -} \ No newline at end of file + if (bytes[0] === 47) { + // starts with '/' + return messageFromBuffer(bytes); + } else if (bytes[0] === 35) { + // starts with '#' + return bundleFromBuffer(bytes); + } else { + throw new Error('bytes do not look like an OSC message or bundle'); + } +} diff --git a/packages/osc/tests/decode.test.js b/packages/osc/tests/decode.test.js index 71d60cc..2262176 100644 --- a/packages/osc/tests/decode.test.js +++ b/packages/osc/tests/decode.test.js @@ -3,39 +3,39 @@ const { describe, it } = require('node:test'); const osc = require('../dist/cjs/index'); const tests = [ - { - description: 'simple bundle', - expected: { - timeTag: [32, 0], - contents: [{ address: '/oscillator/4/frequency', args: [{ type: 'f', value: 440 }] }], - }, - bytes: new Uint8Array([ - ...new TextEncoder().encode('#bundle'), - ...new Uint8Array([0x00]), - ...new Uint8Array([0, 0, 0, 32, 0, 0, 0, 0]), - ...new Uint8Array([0x00, 0x00, 0x00, 0x20]), - ...new Uint8Array([ - 0x2f, 0x6f, 0x73, 0x63, 0x69, 0x6c, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x34, 0x2f, 0x66, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x79, 0x00, 0x2c, 0x66, 0x00, 0x00, 0x43, 0xdc, 0x00, 0x00, - ]), - ]), - }, - { - description: 'osc 1.0 spec example 1', - bytes: new Uint8Array([ - 47, 111, 115, 99, 105, 108, 108, 97, 116, 111, 114, 47, 52, 47, 102, 114, 101, 113, 117, 101, 110, 99, 121, 0, 44, - 102, 0, 0, 67, 220, 0, 0, - ]), - expected: { address: '/oscillator/4/frequency', args: [{ type: 'f', value: 440 }] }, - }, -] + { + description: 'simple bundle', + expected: { + timeTag: [32, 0], + contents: [{ address: '/oscillator/4/frequency', args: [{ type: 'f', value: 440 }] }], + }, + bytes: new Uint8Array([ + ...new TextEncoder().encode('#bundle'), + ...new Uint8Array([0x00]), + ...new Uint8Array([0, 0, 0, 32, 0, 0, 0, 0]), + ...new Uint8Array([0x00, 0x00, 0x00, 0x20]), + ...new Uint8Array([ + 0x2f, 0x6f, 0x73, 0x63, 0x69, 0x6c, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x2f, 0x34, 0x2f, 0x66, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x79, 0x00, 0x2c, 0x66, 0x00, 0x00, 0x43, 0xdc, 0x00, 0x00, + ]), + ]), + }, + { + description: 'osc 1.0 spec example 1', + bytes: new Uint8Array([ + 47, 111, 115, 99, 105, 108, 108, 97, 116, 111, 114, 47, 52, 47, 102, 114, 101, 113, 117, 101, 110, 99, 121, 0, 44, + 102, 0, 0, 67, 220, 0, 0, + ]), + expected: { address: '/oscillator/4/frequency', args: [{ type: 'f', value: 440 }] }, + }, +]; describe('OSC Bytes Decoding', () => { - tests.forEach((bytesTest) => { - it(bytesTest.description, () => { - const [decoded, remainingBytes] = osc.fromBuffer(bytesTest.bytes); - deepEqual(decoded, bytesTest.expected); - equal(remainingBytes.length, 0) - }); + tests.forEach((bytesTest) => { + it(bytesTest.description, () => { + const [decoded, remainingBytes] = osc.fromBuffer(bytesTest.bytes); + deepEqual(decoded, bytesTest.expected); + equal(remainingBytes.length, 0); }); - }); \ No newline at end of file + }); +}); diff --git a/packages/osc/tests/message-decode.test.js b/packages/osc/tests/message-decode.test.js index 8b82ead..e78b890 100644 --- a/packages/osc/tests/message-decode.test.js +++ b/packages/osc/tests/message-decode.test.js @@ -155,9 +155,7 @@ const badTests = [ }, { description: 'float64 missing bytes', - bytes: new Uint8Array([ - 47, 104, 101, 108, 108, 111, 0, 0, 44, 100, 0, 0, 0x40, 0x29, 0x87, 0xec, 0x82, 0x74, 0xb9, - ]), + bytes: new Uint8Array([47, 104, 101, 108, 108, 111, 0, 0, 44, 100, 0, 0, 0x40, 0x29, 0x87, 0xec, 0x82, 0x74, 0xb9]), throwsMessage: { name: /^Error$/, message: /not enough bytes/ }, }, { @@ -170,7 +168,6 @@ const badTests = [ bytes: new Uint8Array([47, 104, 101, 108, 108, 111, 0, 0, 44, 114, 0, 0, 20, 21, 22]), throwsMessage: { name: /^Error$/, message: /must be at least/ }, }, - ]; describe('OSC Message Decoding Pass', () => {