From 7f22b95aa2d49fd7ddecee2215718f330255625d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Sat, 6 Jun 2026 00:55:05 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=20export=20=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中优先级任务:将仅内部使用的函数和类型移除 export 关键字 移除 export 的函数: - uiPopover: showPopover - storageCleaner: injectClearLocalStorage, injectClearSessionStorage, injectClearIndexedDB, injectClearCacheStorage, injectUnregisterServiceWorkers 移除 export 的类型和常量: - base64Converter: SUPPORTED_IMAGE_TYPES, SUPPORTED_IMAGE_EXTENSIONS, TextToBase64Result, Base64ToBlobResult - contextMenu: ContextMenuItemConfig, ContextMenuClickedInfo, ParseResult - jsonFormatter: JsonMinifyResult - jsonToToml: JsonToTomlResult - jsonToYaml: JsonToYamlResult - jwt: JwtHeader, JwtPayload - qrCodeParser: QrCodeParseResult 所有 473 个测试通过,类型检查通过 --- src/entrypoints/content/uiPopover.ts | 2 +- src/utils/base64Converter.ts | 8 ++++---- src/utils/contextMenu.ts | 6 +++--- src/utils/jsonFormatter.ts | 2 +- src/utils/jsonToToml.ts | 2 +- src/utils/jsonToYaml.ts | 2 +- src/utils/jwt.ts | 4 ++-- src/utils/qrCodeParser.ts | 2 +- src/utils/storageCleaner.ts | 10 +++++----- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/entrypoints/content/uiPopover.ts b/src/entrypoints/content/uiPopover.ts index 1a6bafb..faf985e 100644 --- a/src/entrypoints/content/uiPopover.ts +++ b/src/entrypoints/content/uiPopover.ts @@ -161,7 +161,7 @@ function positionPopover(popover: HTMLElement, x: number, y: number): void { let hideTimeout: ReturnType | null = null; -export function showPopover( +function showPopover( x: number, y: number, contentHtml: string, diff --git a/src/utils/base64Converter.ts b/src/utils/base64Converter.ts index 54ee1f4..494f3b5 100644 --- a/src/utils/base64Converter.ts +++ b/src/utils/base64Converter.ts @@ -8,7 +8,7 @@ import { formatBytes } from './format'; export const MAX_FILE_SIZE = 10 * 1024 * 1024; /** 支持的图像 MIME 类型 */ -export const SUPPORTED_IMAGE_TYPES = [ +const SUPPORTED_IMAGE_TYPES = [ 'image/png', 'image/jpeg', 'image/jpg', @@ -20,7 +20,7 @@ export const SUPPORTED_IMAGE_TYPES = [ ] as const; /** 支持的图像文件扩展名 */ -export const SUPPORTED_IMAGE_EXTENSIONS = [ +const SUPPORTED_IMAGE_EXTENSIONS = [ '.png', '.jpg', '.jpeg', @@ -34,7 +34,7 @@ export const SUPPORTED_IMAGE_EXTENSIONS = [ /** * 文本转 Base64 编码结果 */ -export interface TextToBase64Result { +interface TextToBase64Result { /** Base64 编码结果 */ output: string; /** 原始字节数 */ @@ -226,7 +226,7 @@ export function formatFileSize(bytes: number): string { /** * Base64 解码为二进制后的产物 */ -export interface Base64ToBlobResult { +interface Base64ToBlobResult { /** 解码后的 Blob */ blob: Blob; /** 推断出的 MIME 类型 */ diff --git a/src/utils/contextMenu.ts b/src/utils/contextMenu.ts index eac11b9..3269530 100644 --- a/src/utils/contextMenu.ts +++ b/src/utils/contextMenu.ts @@ -1,18 +1,18 @@ import type { PageType } from '@/types/storage'; -export interface ContextMenuItemConfig { +interface ContextMenuItemConfig { id: string; title: string; contexts: [`${chrome.contextMenus.ContextType}`, ...`${chrome.contextMenus.ContextType}`[]]; parentId?: string; } -export interface ContextMenuClickedInfo { +interface ContextMenuClickedInfo { featureKey: PageType; payload: string; } -export interface ParseResult { +interface ParseResult { success: boolean; data?: ContextMenuClickedInfo; error?: string; diff --git a/src/utils/jsonFormatter.ts b/src/utils/jsonFormatter.ts index 9ea3b68..ff6c14b 100644 --- a/src/utils/jsonFormatter.ts +++ b/src/utils/jsonFormatter.ts @@ -71,7 +71,7 @@ export function formatJson(text: string, options: JsonFormatOptions): JsonFormat /** * JSON 压缩结果 */ -export interface JsonMinifyResult { +interface JsonMinifyResult { /** 压缩后的 JSON 字符串 */ minified: string; /** 原始输入的字节大小 */ diff --git a/src/utils/jsonToToml.ts b/src/utils/jsonToToml.ts index e810a1e..78e24d3 100644 --- a/src/utils/jsonToToml.ts +++ b/src/utils/jsonToToml.ts @@ -1,7 +1,7 @@ /** * JSON 转 TOML 转换结果 */ -export interface JsonToTomlResult { +interface JsonToTomlResult { /** 转换后的 TOML 字符串 */ output: string; /** 原始输入的字节大小 */ diff --git a/src/utils/jsonToYaml.ts b/src/utils/jsonToYaml.ts index 546feb0..9920023 100644 --- a/src/utils/jsonToYaml.ts +++ b/src/utils/jsonToYaml.ts @@ -1,7 +1,7 @@ /** * JSON 转 YAML 转换结果 */ -export interface JsonToYamlResult { +interface JsonToYamlResult { /** 转换后的 YAML 字符串 */ output: string; /** 原始输入的字节大小 */ diff --git a/src/utils/jwt.ts b/src/utils/jwt.ts index bb9f677..78d56bb 100644 --- a/src/utils/jwt.ts +++ b/src/utils/jwt.ts @@ -4,13 +4,13 @@ import { getMessage } from '@/utils/chromeI18n'; -export interface JwtHeader { +interface JwtHeader { alg: string; typ?: string; [key: string]: unknown; } -export interface JwtPayload { +interface JwtPayload { iss?: string; sub?: string; aud?: string | string[]; diff --git a/src/utils/qrCodeParser.ts b/src/utils/qrCodeParser.ts index 946f8ba..63ef41c 100644 --- a/src/utils/qrCodeParser.ts +++ b/src/utils/qrCodeParser.ts @@ -1,6 +1,6 @@ import QrScanner from 'qr-scanner'; -export interface QrCodeParseResult { +interface QrCodeParseResult { success: boolean; data?: string; error?: string; diff --git a/src/utils/storageCleaner.ts b/src/utils/storageCleaner.ts index 6f5ee19..65ba10f 100644 --- a/src/utils/storageCleaner.ts +++ b/src/utils/storageCleaner.ts @@ -224,7 +224,7 @@ async function runCleanScript( return { success: false, error: 'No result returned' }; } -export async function injectClearLocalStorage(tabId: number): Promise { +async function injectClearLocalStorage(tabId: number): Promise { return runCleanScript( tabId, () => { @@ -236,7 +236,7 @@ export async function injectClearLocalStorage(tabId: number): Promise { +async function injectClearSessionStorage(tabId: number): Promise { return runCleanScript( tabId, () => { @@ -248,7 +248,7 @@ export async function injectClearSessionStorage(tabId: number): Promise { +async function injectClearIndexedDB(tabId: number): Promise { return runCleanScript( tabId, async () => { @@ -292,7 +292,7 @@ export async function injectClearIndexedDB(tabId: number): Promise { +async function injectClearCacheStorage(tabId: number): Promise { return runCleanScript( tabId, async () => { @@ -309,7 +309,7 @@ export async function injectClearCacheStorage(tabId: number): Promise { +async function injectUnregisterServiceWorkers(tabId: number): Promise { return runCleanScript( tabId, async () => {