Skip to content

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 06 Apr 06:50
· 38 commits to main since this release

[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,由 ESLint curly 规则检测并自动修复(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