diff options
Diffstat (limited to 'packages/server/src/helpers/decodeCbor.ts')
-rw-r--r-- | packages/server/src/helpers/decodeCbor.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/server/src/helpers/decodeCbor.ts b/packages/server/src/helpers/decodeCbor.ts new file mode 100644 index 0000000..aa489e8 --- /dev/null +++ b/packages/server/src/helpers/decodeCbor.ts @@ -0,0 +1,14 @@ +import cbor from 'cbor'; + +export function decodeCborFirst(input: string | Buffer | ArrayBufferView): any { + try { + // throws if there are extra bytes + return cbor.decodeFirstSync(input); + } catch (err) { + // if the error was due to extra bytes, return the unpacked value + if (err.value) { + return err.value; + } + throw err; + } +} |