Skip to content

Fix alpha#24

Merged
baxyz merged 7 commits intomainfrom
fix-alpha
Apr 7, 2026
Merged

Fix alpha#24
baxyz merged 7 commits intomainfrom
fix-alpha

Conversation

@baxyz
Copy link
Copy Markdown
Contributor

@baxyz baxyz commented Apr 5, 2026

Description

Extends the build/publish toolchain, strengthens test suite, and performs linting cleanup.

Changes

Build pipeline

  • Add a new build step to generate licenses.json for each built category (third-party dependency license metadata)
  • Expose licenses.json via template package exports and files

Linting migration

  • Replace ESLint config (.eslintrc.json) with Oxlint config (.oxlintrc.json)
  • Alphabetize import ordering across scripts, tests, and examples

Test improvements

  • Expand and harden tests across helpers (string, object, date, type, function)
  • Add mutation-killing tests for deepCompare, quickCompare, isSpecialObject
  • Add edge-case tests for safeDate, slugify, labelize, isSameDay, toRFC2822
  • Switch throttle tests to fake timers for deterministic CI behavior

Documentation

  • Update template docs link target to helpers4.dev
  • Remove pre-release npm badge from README
  • Fix @return@returns in JSDoc

Type of Change

  • New feature (non-breaking change that adds functionality)
  • Test improvement
  • Refactoring

How Has This Been Tested?

  • pnpm test — all 556 tests pass with 100% coverage
  • pnpm typecheck — no type errors
  • pnpm build — full build pipeline including licenses.json generation

Checklist

  • My code follows the code style of this project
  • I have updated the documentation accordingly
  • I have added tests for my changes
  • All new and existing tests passed locally
  • My commits follow the conventional commit format

Copilot AI review requested due to automatic review settings April 5, 2026 21:58
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends the build/publish toolchain to generate and ship per-category licenses.json metadata, alongside a broader cleanup of import ordering, test strengthening, and a linting config migration.

Changes:

  • Add a new build step to generate licenses.json for each built category and expose it via template package exports/files.
  • Replace the ESLint config with an Oxlint config (.oxlintrc.json) and adjust formatting/import ordering across scripts/tests/examples.
  • Expand and harden test coverage across several helpers (string/object/date/type/function).

Reviewed changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/version/version-manager.ts Import ordering cleanup in version tooling.
scripts/publish/index.ts Import ordering cleanup in publish tooling.
scripts/build/index.ts Adds buildLicenses step to build pipeline.
scripts/build/build-licenses.ts New generator that writes licenses.json per category.
README.md Removes pre-release (alpha) npm badge.
helpers/version/stripV.test.ts Import ordering cleanup.
helpers/url/withTrailingSlash.test.ts Import ordering cleanup.
helpers/url/withoutTrailingSlash.test.ts Import ordering cleanup.
helpers/url/withoutLeadingSlash.test.ts Import ordering cleanup.
helpers/url/withLeadingSlash.test.ts Import ordering cleanup.
helpers/url/relativeURLToAbsolute.test.ts Import ordering cleanup.
helpers/url/onlyPath.test.ts Import ordering cleanup.
helpers/url/extractPureURI.test.ts Import ordering cleanup.
helpers/url/cleanPath.test.ts Import ordering cleanup.
helpers/type/typeChecks.test.ts Import ordering cleanup.
helpers/type/typeChecks.example.ts Import ordering cleanup in examples.
helpers/type/isSpecialObject.test.ts Adds/adjusts tests for special-object detection.
helpers/string/slugify.test.ts Adds additional slugify edge-case tests.
helpers/string/labelize.test.ts Adds additional labelize behavior tests.
helpers/string/errorToReadableMessage.test.ts Import ordering cleanup.
helpers/observable/combineLatest.ts JSDoc tag tweak (@return@returns).
helpers/object/quickCompare.test.ts Adds additional quickCompare edge-case tests.
helpers/object/deepCompare.test.ts Adds many deepCompare edge-case/mutation-killing tests.
helpers/function/throttle.test.ts Adds additional throttle timing tests.
helpers/date/safeDate.test.ts Expands invalid-input test cases for safeDate.
helpers/date/is.test.ts Adds negative tests for isSameDay.
helpers/date/format.test.ts Expands month coverage in toRFC2822 tests.
helpers/date/format.example.ts Import ordering cleanup in examples.
helpers/date/difference.test.ts Import ordering cleanup.
helpers/date/compare.test.ts Import ordering cleanup.
helpers/array/sort.test.ts Import ordering cleanup.
helpers/array/sort.example.ts Import ordering cleanup in examples.
helpers/array/quickCompare.test.ts Import ordering cleanup.
helpers/array/deepCompare.test.ts Import ordering cleanup.
.template/category/README.md Updates template docs link target.
.template/category/package.json Exposes and ships licenses.json in template packages.
.oxlintrc.json Adds Oxlint configuration.
.eslintrc.json Removes ESLint configuration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

✅ PR Validation Passed

All checks passed and coverage target reached!


📋 Pipeline Status

Job Status
🔢 Version passing
🏗️ Build passing
🧪 Tests passing
📝 Lint passing
📘 TypeCheck passing
🔐 Security Audit passing
🧾 Conventional Commits passing
🔗 Coherency passing

📊 Code Coverage

Overall Coverage: 100.0% — Target reached! 🎯

Metric Progress Coverage
Lines ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%
Branches ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%
Functions ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%
Statements ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100%

🧬 Mutation Testing

🟢 Mutation Score: 91.13% — excellent

Metric Progress Score
🟢 Mutation Score ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 91.13%

🧬 Mutation testing is informational only and does not block the PR


ℹ️ About this report
  • 🎯 Coverage Target: 100% for all metrics
  • 🧬 Mutation Testing: powered by Stryker (non-blocking)
  • 🔄 This comment updates automatically with each push
  • 📈 Coverage is measured using Vitest + v8

🤖 Generated by @helpers4 CI • 2026-04-07

- use fake timers for better control
- replace promises with vi.advanceTimersByTime
- update test descriptions for clarity
@baxyz baxyz merged commit 1f03331 into main Apr 7, 2026
13 checks passed
@baxyz baxyz deleted the fix-alpha branch April 7, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants