From dc27b0e3ccbae29c8c0346f799d05e001a695193 Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 23 Oct 2025 10:36:50 +0800 Subject: [PATCH] refactor(assets-middleware): remove unused utility functions --- .../server/assets-middleware/escapeHtml.ts | 45 ------------------- .../src/server/assets-middleware/memorize.ts | 30 ------------- .../server/assets-middleware/middleware.ts | 8 ++-- 3 files changed, 3 insertions(+), 80 deletions(-) delete mode 100644 packages/core/src/server/assets-middleware/escapeHtml.ts delete mode 100644 packages/core/src/server/assets-middleware/memorize.ts diff --git a/packages/core/src/server/assets-middleware/escapeHtml.ts b/packages/core/src/server/assets-middleware/escapeHtml.ts deleted file mode 100644 index a44473ebf3..0000000000 --- a/packages/core/src/server/assets-middleware/escapeHtml.ts +++ /dev/null @@ -1,45 +0,0 @@ -const matchHtmlRegExp = /["'&<>]/; - -export function escapeHtml(input: string): string { - const match = matchHtmlRegExp.exec(input); - - if (!match) { - return input; - } - - let htmlEntity: string | undefined; - let html = ''; - let index = 0; - let lastIndex = 0; - - for ({ index } = match; index < input.length; index++) { - switch (input.charCodeAt(index)) { - case 34: - htmlEntity = '"' + ';'; - break; - case 38: - htmlEntity = '&' + ';'; - break; - case 39: - htmlEntity = ''' + ';'; - break; - case 60: - htmlEntity = '<' + ';'; - break; - case 62: - htmlEntity = '>' + ';'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += input.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += htmlEntity; - } - - return lastIndex !== index ? html + input.substring(lastIndex, index) : html; -} diff --git a/packages/core/src/server/assets-middleware/memorize.ts b/packages/core/src/server/assets-middleware/memorize.ts deleted file mode 100644 index dab1c827f1..0000000000 --- a/packages/core/src/server/assets-middleware/memorize.ts +++ /dev/null @@ -1,30 +0,0 @@ -export function memorize( - fn: (...args: any[]) => T, - { - cache = new Map(), - }: { cache?: Map } = {}, - callback?: (value: T) => T, -): (...args: [string, ...any[]]) => T { - const memoized = (...arguments_: [string, ...any[]]): T => { - const [key] = arguments_; - const cacheItem = cache.get(key); - - if (cacheItem) { - return cacheItem.data; - } - - let result: T = fn.apply(undefined, arguments_); - - if (callback) { - result = callback(result); - } - - cache.set(key, { - data: result, - }); - - return result; - }; - - return memoized; -} diff --git a/packages/core/src/server/assets-middleware/middleware.ts b/packages/core/src/server/assets-middleware/middleware.ts index 6559b9cd58..db7bf5b54f 100644 --- a/packages/core/src/server/assets-middleware/middleware.ts +++ b/packages/core/src/server/assets-middleware/middleware.ts @@ -7,10 +7,8 @@ import { requireCompiledPackage } from '../../helpers/vendors'; import { logger } from '../../logger'; import type { InternalContext, RequestHandler } from '../../types'; import { HttpCode } from '../helper'; -import { escapeHtml } from './escapeHtml'; import { getFileFromUrl } from './getFileFromUrl'; import type { OutputFileSystem } from './index'; -import { memorize } from './memorize'; import { parseTokenList } from './parseTokenList'; function getEtag(stat: FSStats): string { @@ -94,12 +92,12 @@ function destroyStream(stream: ReadStream, suppress: boolean): void { } } -const parseRangeHeaders = memorize((value: string): RangeResult | Ranges => { +const parseRangeHeaders = (value: string): RangeResult | Ranges => { const [len, rangeHeader] = value.split('|'); return rangeParser(Number(len), rangeHeader, { combine: true, }); -}); +}; type SendErrorOptions = { headers?: Record; @@ -123,7 +121,7 @@ function sendError( const content = errorMessages[code]; const document = Buffer.from( - `\n\n\n\nError\n\n\n
${escapeHtml(content)}
\n\n`, + `\n\n\n\nError\n\n\n
${content}
\n\n`, 'utf-8', );