v2.0.1
[2.0.1] - 2026-04-06
What's Changed
Refactored
- ES6 class architecture —
sizer,renderer,output,generator,adjuster全部重构为 ES6 class(单一具名 class 导出),私有实现细节改为static #私有字段/方法,对外 API 不变 - adjuster — 提取
#binarySearchQuality合并两段重复的质量二分搜索;合并padBuffer冗余兜底分支 - renderer — 去掉无意义中间变量;BMP 写入分支增加注释;SVG 叠加层与合成输入构建拆分为独立私有方法
- sizer —
calculate内部拆出#dimensionsForPixelBudget与#clampToMinDimensions两个私有方法;未知格式 bpp 回退使用命名常量 - generator —
LOSSY_FORMATS/BYTES_PER_MB改为私有静态字段;日志与告警逻辑更清晰 - 目录结构 — 源码按
src/core(核心流程)/src/utils(工具)/src/constants(常量)三层组织 - Logger — 重构为单例 class,统一
logger导出 - ColorProcessor — 重构为单例 class,统一
colorProcessor导出
Added
- Git hooks
pre-commit:lint-staged(暂存文件自动 eslint --fix + prettier)pre-push:npm run test(推送前必须通过全量单元测试)
- ESLint + Prettier — 引入
eslint.config.js与.prettierrc,集成eslint-config-prettier,启用curly: all规则强制所有控制语句使用花括号 - 测试覆盖扩充
- 新增
test/generator.test.js(buildDisplayName、buildOverlayLines、getToleranceBytes) renderer补充applyFormat非法格式、rawToBmp头信息与文件大小校验cli增加参数错误场景(退出码)与-v版本输出用例output测试改为直接导入源码实现,去掉重复手写
- 新增
CI
- 增加 GitHub Actions 自动发布流程
- 自动发布 npm 包
- 自动生成 GitHub Release
Fixed
- 花括号缺失导致的隐式单语句
if,由 ESLintcurly规则检测并自动修复(adjuster、cli、sizer、logger)
- docs: Add Chinese README (README-zh_cn.md) by @Copilot in #1
- [WIP] Merge development branch into main by @Copilot in #2
New Contributors
- @Copilot made their first contribution in #1
Full Changelog: https://github.com/LiarCoder/image-generator/commits/v2.0.1