From 99ae9d8a3bb491fddd82e1918639d68f44d607fc Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Tue, 15 Oct 2024 21:35:53 -0500 Subject: [PATCH] allow no type string --- packages/osc/src/message.ts | 11 +++++++++++ packages/osc/tests/message-decode.test.js | 1 + 2 files changed, 12 insertions(+) diff --git a/packages/osc/src/message.ts b/packages/osc/src/message.ts index 5ffe030..97acc78 100644 --- a/packages/osc/src/message.ts +++ b/packages/osc/src/message.ts @@ -76,6 +76,17 @@ export function messageFromBuffer(bytes: Uint8Array): [OSCMessage | undefined, U const [address, bytesAfterAddress] = oscTypeConverterMap.s.fromBuffer(bytes); if (typeof address === 'string') { + if(bytesAfterAddress.length === 0){ + // NOTE(jwetzell): OSC 1.0 spec says that messages without a type string should be allowed + return [ + { + address, + args: [] + }, + bytesAfterAddress + ] + } + let [typeString, bytesAfterType] = oscTypeConverterMap.s.fromBuffer(bytesAfterAddress); if (typeof typeString === 'string') { if (!typeString.startsWith(',')) { diff --git a/packages/osc/tests/message-decode.test.js b/packages/osc/tests/message-decode.test.js index e4c2e06..4b798f2 100644 --- a/packages/osc/tests/message-decode.test.js +++ b/packages/osc/tests/message-decode.test.js @@ -81,6 +81,7 @@ const goodTests = [ ], }, }, + expected: { { description: 'osc 1.0 spec example 1', bytes: new Uint8Array([