summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/iso/isoCBOR.ts
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2023-08-22 10:13:03 -0700
committerGitHub <noreply@github.com>2023-08-22 10:13:03 -0700
commitfefc95e4535e6ecf903f647124a492fba3fd11d6 (patch)
tree4c924d43d32fb12a780533302eaf5dee08875d75 /packages/server/src/helpers/iso/isoCBOR.ts
parent443c341bc2163f07b93a3ef84a43294d10b826f8 (diff)
parent2935857c76d458c26701842e500f8d97d17499c5 (diff)
Merge pull request #425 from MasterKale/feat/server-esm-take-2-dnt
feat/server-esm-take-2-dnt
Diffstat (limited to 'packages/server/src/helpers/iso/isoCBOR.ts')
-rw-r--r--packages/server/src/helpers/iso/isoCBOR.ts14
1 files changed, 9 insertions, 5 deletions
diff --git a/packages/server/src/helpers/iso/isoCBOR.ts b/packages/server/src/helpers/iso/isoCBOR.ts
index 9f7cbd7..bbf4118 100644
--- a/packages/server/src/helpers/iso/isoCBOR.ts
+++ b/packages/server/src/helpers/iso/isoCBOR.ts
@@ -1,5 +1,4 @@
-/* eslint-disable @typescript-eslint/ban-ts-comment */
-import * as cborx from 'cbor-x';
+import { cborx } from '../../deps.ts';
/**
* This encoder should keep CBOR data the same length when data is re-encoded
@@ -11,7 +10,10 @@ import * as cborx from 'cbor-x';
* So long as these requirements are maintained, then CBOR sequences can be encoded and decoded
* freely while maintaining their lengths for the most accurate pointer movement across them.
*/
-const encoder = new cborx.Encoder({ mapsAsObjects: false, tagUint8Array: false });
+const encoder = new cborx.Encoder({
+ mapsAsObjects: false,
+ tagUint8Array: false,
+});
/**
* Decode and return the first item in a sequence of CBOR-encoded values
@@ -21,7 +23,9 @@ const encoder = new cborx.Encoder({ mapsAsObjects: false, tagUint8Array: false }
* `false`
*/
export function decodeFirst<Type>(input: Uint8Array): Type {
- const decoded = encoder.decodeMultiple(input) as undefined | Type[];
+ // Make a copy so we don't mutate the original
+ const _input = new Uint8Array(input);
+ const decoded = encoder.decodeMultiple(_input) as undefined | Type[];
if (decoded === undefined) {
throw new Error('CBOR input data was empty');
@@ -41,6 +45,6 @@ export function decodeFirst<Type>(input: Uint8Array): Type {
/**
* Encode data to CBOR
*/
-export function encode(input: any): Uint8Array {
+export function encode(input: unknown): Uint8Array {
return encoder.encode(input);
}