Release Beta to Master#79
Conversation
…ade TypeScript target - Updated Node.js engine requirement from >=18.18 to >=20.10 in package.json. - Upgraded eslint-plugin-unicorn from ^56.0.0 to ^62.0.0 in package.json. - Added several new ESLint rules for unicorn in src/rules/unicorn.ts to enforce better coding practices. - Changed TypeScript target from ES2022 to ES2023 in tsconfig.json. BREAKING CHANGES: Node 20 is now required.
Feat/unicorn update
- Bump Node.js engine requirement to >=20.11.0 in package.json - Update ESLint and related plugins to latest versions - Replace eslint-plugin-import with eslint-plugin-import-x - Adjust ESLint rules in index.ts and typescript-eslint.ts for better compliance - Change ban-ts-comment rule from off to error - Remove deprecated rules and clean up unused configurations
Feat/eslint upgrade
feat!: remove support for older TS versions (<3.8)
BREAKING CHANGE: TS versions older than 3.8 no longer supported
There was a problem hiding this comment.
Pull request overview
Updates the intolerable-style-guide package for the “beta → master” release by bumping runtime/tooling baselines (Node/ES target, ESLint 10) and tightening rule configs while removing now-unneeded TypeScript-version conditionals.
Changes:
- Bump Node/EcmaScript targets and upgrade tooling dependencies (ESLint 10, unicorn/import-x/sonarjs).
- Expand Unicorn rule set; adjust TypeScript-ESLint rules (including enabling
ban-ts-comment) and remove conditionaltsiifhelper. - Update release workflow and example project to align with the new versions.
Reviewed changes
Copilot reviewed 11 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.json |
Bumps TS compilation target to ES2023. |
src/rules/unicorn.ts |
Enables many additional eslint-plugin-unicorn rules. |
src/rules/typescript-eslint.ts |
Tightens/updates TS-ESLint rules and removes TS-version conditionals. |
src/rules/import.ts |
Switches to eslint-plugin-import-x and enables import/no-cycle unconditionally. |
src/index.ts |
Updates JS override to disable @typescript-eslint/no-require-imports. |
src/helpers/iif.ts |
Removes the tsiif helper used for TS-version gating. |
package.json |
Updates Node engine + dependency upgrades (ESLint 10, unicorn 63, etc.). |
example-project/* |
Aligns example project configs/locks with ES2023 + ESLint 10. |
README.md |
Updates install instructions to ESLint 10. |
.github/workflows/release.yml |
Updates release job Node version and publishing auth approach (OIDC). |
Files not reviewed (1)
- example-project/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }, | ||
| "engines": { | ||
| "node": ">=18.18", | ||
| "node": ">=20.11.0", |
There was a problem hiding this comment.
engines.node is set to >=20.11.0, but the updated ESLint 10 dependency chain requires newer Node 20 minors (e.g. @eslint/config-array/@eslint/core in the lockfile declare node: ^20.19.0 || ^22.13.0 || >=24). This makes the advertised engine range too low and can lead to install/CI failures on Node 20.11.x. Please bump engines.node to at least >=20.19.0 (or the strictest minimum required by the dependency graph).
| "node": ">=20.11.0", | |
| "node": ">=20.19.0", |
| "prettier": "^3.5.2", | ||
| "semver": "^7.7.1", | ||
| "typescript-eslint": "^8.46.4" |
There was a problem hiding this comment.
semver appears to be unused after deleting src/helpers/iif.ts (no remaining imports/usages in the repo). Consider removing it from dependencies (and likewise removing @types/semver if it’s also unused) to avoid shipping an unnecessary runtime dependency.
| "@commitlint/config-conventional": "^20.0.0", | ||
| "@types/eslint": "^9.6.1", | ||
| "@types/semver": "^7.5.8", | ||
| "eslint": "^9.36.0", | ||
| "eslint": "^10.0.3", |
There was a problem hiding this comment.
Since the semver runtime dependency is no longer referenced, the @types/semver devDependency also looks unused. Removing it will reduce dependency surface and keep the dev dependency set aligned with actual TS usage.
No description provided.