feat: add npm adapter for package.json #3

Merged
alex merged 1 commit from pi/issue2-1793257267822 into dev 2026-10-29 07:12:57 +00:00

Closes #2

Adds an npm adapter so JS/TS projects can be released via package.json:

  • New ConventionalRelease::Adapter::Npm (src/conventional_release/adapter/npm.cr), manifest package.json, --lang npm.
  • Reads the top-level version field with a light regex (no JSON parse + re-serialize, so formatting, key order and trailing newline are preserved on rewrite), validates it as SemVer 2.0.0, and raises a clear Error when the field is missing or not valid SemVer.
  • Registered in ADAPTERS after version-file and before crystal (same precedence model as before).
  • Specs covering rewrite (formatting preserved), reading (plain, prerelease, missing field, invalid version), and detection via package.json presence.
  • README updated: Node/TS projects listed as supported, roadmap entry for NodeJS removed.
Closes #2 Adds an npm adapter so JS/TS projects can be released via `package.json`: - New `ConventionalRelease::Adapter::Npm` (`src/conventional_release/adapter/npm.cr`), manifest `package.json`, `--lang npm`. - Reads the top-level `version` field with a light regex (no JSON parse + re-serialize, so formatting, key order and trailing newline are preserved on rewrite), validates it as SemVer 2.0.0, and raises a clear `Error` when the field is missing or not valid SemVer. - Registered in `ADAPTERS` after `version-file` and before `crystal` (same precedence model as before). - Specs covering rewrite (formatting preserved), reading (plain, prerelease, missing field, invalid version), and detection via `package.json` presence. - README updated: Node/TS projects listed as supported, roadmap entry for NodeJS removed.
Co-authored-by: alex <alex@forge.l3x.in>
alex changed target branch from master to dev 2026-10-29 07:12:14 +00:00
alex merged commit 82c6bf4361 into dev 2026-10-29 07:12:57 +00:00
alex deleted branch pi/issue2-1793257267822 2026-10-29 07:12:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
dependencies
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
alex/conventional-release!3
No description provided.