From 4947c12da93ad186f7ce2db31a0c0678d53b6e21 Mon Sep 17 00:00:00 2001 From: XLor Date: Mon, 22 Jan 2024 15:37:33 +0800 Subject: [PATCH] fix: remove circular deps --- src/shared.ts | 25 +------------------------ src/shims/decode.ts | 24 ++++++++++++++++++++++++ src/shims/node.ts | 2 +- 3 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 src/shims/decode.ts diff --git a/src/shared.ts b/src/shared.ts index e85632e..6632e43 100644 --- a/src/shared.ts +++ b/src/shared.ts @@ -69,27 +69,4 @@ export const useTimeout = ( }), ]) -export const decodeMessageData = (data: any) => { - if (typeof data == 'string') { - return data - } else if (data instanceof Uint8Array || data instanceof ArrayBuffer) { - return new TextDecoder().decode(data) - } else if (data.buffer instanceof ArrayBuffer) { - return new TextDecoder().decode(data.buffer) - } else if (Array.isArray(data)) { - const out: string[] = [] - const decoder = new TextDecoder() - for (const chunk of data) { - if (typeof chunk == 'string') { - out.push(chunk) - } else if (chunk instanceof Uint8Array || chunk instanceof ArrayBuffer) { - out.push(decoder.decode(chunk)) - } else if (chunk.buffer instanceof ArrayBuffer) { - out.push(decoder.decode(chunk.buffer)) - } - } - return out.join('') - } else { - throw new Error('[maria2 error] Message data cannot be decoded') - } -} +export { decodeMessageData } from './shims/decode.ts' diff --git a/src/shims/decode.ts b/src/shims/decode.ts new file mode 100644 index 0000000..0cc5d00 --- /dev/null +++ b/src/shims/decode.ts @@ -0,0 +1,24 @@ +export const decodeMessageData = (data: any) => { + if (typeof data == 'string') { + return data + } else if (data instanceof Uint8Array || data instanceof ArrayBuffer) { + return new TextDecoder().decode(data) + } else if (data.buffer instanceof ArrayBuffer) { + return new TextDecoder().decode(data.buffer) + } else if (Array.isArray(data)) { + const out: string[] = [] + const decoder = new TextDecoder() + for (const chunk of data) { + if (typeof chunk == 'string') { + out.push(chunk) + } else if (chunk instanceof Uint8Array || chunk instanceof ArrayBuffer) { + out.push(decoder.decode(chunk)) + } else if (chunk.buffer instanceof ArrayBuffer) { + out.push(decoder.decode(chunk.buffer)) + } + } + return out.join('') + } else { + throw new Error('[maria2 error] Message data cannot be decoded') + } +} diff --git a/src/shims/node.ts b/src/shims/node.ts index 751b834..0baa7d3 100644 --- a/src/shims/node.ts +++ b/src/shims/node.ts @@ -1,4 +1,4 @@ -import { decodeMessageData } from '../shared.ts' +import { decodeMessageData } from './decode.ts' export const randomUUID = await (async () => { const nodeCrypto = await import('node:crypto')