b79fe7dd49
Move all source code directories into src/ for cleaner project structure: - pages/, components/, utils/, config/, providers/, types/, lib/, assets/, entrypoints/ → src/ - Use WXT srcDir config to resolve @/ alias to src/ - Update tsconfig, vitest, eslint, tailwind configs - Remove scattered README.md files from subdirectories - Update documentation (AGENTS.md, CODING_STANDARDS.md, README.md) - Fix pre-existing lint error in RouterProvider.tsx Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
25 lines
616 B
TypeScript
25 lines
616 B
TypeScript
/**
|
|
* 格式化字节大小为易读字符串
|
|
*
|
|
* @param bytes 字节数
|
|
* @returns 格式化后的字符串,例如 "1.5 KB" 或 "100 B"
|
|
*/
|
|
export function formatBytes(bytes: number): string {
|
|
if (bytes === 0) return '0 B';
|
|
if (bytes < 1024) return `${bytes} B`;
|
|
|
|
const units = ['KB', 'MB', 'GB', 'TB'];
|
|
let size = bytes / 1024;
|
|
let unitIndex = 0;
|
|
|
|
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
size /= 1024;
|
|
unitIndex++;
|
|
}
|
|
|
|
// KB uses 1 decimal, MB/GB/TB use 2 decimals
|
|
const decimals = unitIndex === 0 ? 1 : 2;
|
|
|
|
return `${size.toFixed(decimals)} ${units[unitIndex]}`;
|
|
}
|