From e8616acfe42e5a500975adbd8dd3a240682005ff Mon Sep 17 00:00:00 2001 From: EYHN Date: Wed, 22 Nov 2023 14:53:33 +0000 Subject: [PATCH] fix(workspace): fast check svg buffer (#5032) --- .../workspace/src/blob/__tests__/util.spec.ts | 13 ++++++++ packages/frontend/workspace/src/blob/util.ts | 33 ++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 packages/frontend/workspace/src/blob/__tests__/util.spec.ts diff --git a/packages/frontend/workspace/src/blob/__tests__/util.spec.ts b/packages/frontend/workspace/src/blob/__tests__/util.spec.ts new file mode 100644 index 0000000000..1b3e0fe20a --- /dev/null +++ b/packages/frontend/workspace/src/blob/__tests__/util.spec.ts @@ -0,0 +1,13 @@ +import { Buffer } from 'node:buffer'; + +import { describe, expect, test } from 'vitest'; + +import { isSvgBuffer } from '../util'; + +describe('isSvgBuffer', () => { + test('basic', async () => { + expect(isSvgBuffer(Buffer.from(''))).toBe(true); + expect(isSvgBuffer(Buffer.from(' \n\r\t'))).toBe(true); + expect(isSvgBuffer(Buffer.from('<123>'))).toBe(false); + }); +}); diff --git a/packages/frontend/workspace/src/blob/util.ts b/packages/frontend/workspace/src/blob/util.ts index e5c206b1fe..2ff1d9e1e7 100644 --- a/packages/frontend/workspace/src/blob/util.ts +++ b/packages/frontend/workspace/src/blob/util.ts @@ -1,8 +1,39 @@ import isSvg from 'is-svg'; +function fastCheckIsNotSvg(buffer: Uint8Array) { + // check first non-whitespace character is not '