From a06f3cdfc8d6625ff781062be81b0231f675fcc8 Mon Sep 17 00:00:00 2001 From: idanran <96647698+idanran@users.noreply.github.com> Date: Mon, 15 Jan 2024 15:00:51 +0800 Subject: [PATCH] feat(element): support ArrayBufferView (#227) --- packages/element/src/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/element/src/index.ts b/packages/element/src/index.ts index 7c1f1289..8b78b695 100644 --- a/packages/element/src/index.ts +++ b/packages/element/src/index.ts @@ -468,7 +468,7 @@ namespace Element { // eslint-disable-next-line prefer-const export let warn: (message: string) => void = () => {} - function createAssetFactory(type: string): Factory<[data: string] | [data: Buffer | ArrayBuffer, type: string]> { + function createAssetFactory(type: string): Factory<[data: string] | [data: Buffer | ArrayBuffer | ArrayBufferView, type: string]> { return (src, ...args) => { let prefix = 'base64://' if (typeof args[0] === 'string') { @@ -478,6 +478,8 @@ namespace Element { src = prefix + src.toString('base64') } else if (is('ArrayBuffer', src)) { src = prefix + arrayBufferToBase64(src) + } else if (ArrayBuffer.isView(src)) { + src = prefix + arrayBufferToBase64(src.buffer) } if (src.startsWith('base64://')) { warn(`protocol "base64:" is deprecated and will be removed in the future, please use "data:" instead`)