Skip to content

chore: [BBND-1155] ESLint refactor#843

Merged
rubenbermejo3 merged 33 commits intodevelopmentfrom
feat/BBND-1155-ESLintRefactor
Feb 27, 2026
Merged

chore: [BBND-1155] ESLint refactor#843
rubenbermejo3 merged 33 commits intodevelopmentfrom
feat/BBND-1155-ESLintRefactor

Conversation

@rubenbermejo3
Copy link
Copy Markdown
Contributor

Description

Restructure ESLint configuration across the monorepo by creating a shared @hashgraph/eslint-config package and upgrading from ESLint 8 (EOL) to ESLint 9 + typescript-eslint v8.

Motivation / Context

  • ESLint 8 reached End of Life in October 2024
  • Three different versions of @typescript-eslint (6.x, 7.x, 8.x) coexisted in the monorepo
  • The root eslint.config.mjs was monolithic with package-specific rules using absolute paths
  • Mass-payout packages had completely independent ESLint configs with duplicated dependencies
  • No shared, composable ESLint configuration existed

Changes

New: packages/eslint-config/

  • Shared ESLint config package with composable presets
  • Base config (createBaseConfig()): TypeScript + Prettier + unused-imports
  • Presets: node, react, jest, mocha, ddd, stylistic
  • All ESLint plugin dependencies centralized here

Updated: Per-package eslint.config.mjs

  • Each package now has its own flat config extending from @hashgraph/eslint-config
  • Configs compose base + environment presets + local overrides:
    • packages/ats/contracts: base + node + mocha
    • packages/ats/sdk: base + node + jest + explicit-return-type
    • apps/ats/web: base + react + jest
    • apps/mass-payout/backend: base + node + stylistic + ddd + jest
    • apps/mass-payout/frontend: base + react + jest
    • packages/mass-payout/contracts: base + node + stylistic + ddd + mocha
    • packages/mass-payout/sdk: base + node + stylistic + ddd + jest

Updated: Root config

  • Minimized to only ignore packages/** and apps/** (each package lints itself)

Updated: Dependencies

  • Upgraded eslint to ^9.24.0
  • Unified on typescript-eslint v8 (replaces separate parser + plugin)
  • Removed 11+ ESLint devDeps from root (moved to shared config)
  • Removed ~20 ESLint devDeps from mass-payout backend/frontend
  • Added @hashgraph/eslint-config: "*" to all packages

Updated: Scripts

  • Normalized all packages: "lint": "eslint . --cache", "lint:fix": "eslint . --fix --cache"
  • Root scripts: lint:js runs all workspaces, ats:lint:js and mass-payout:lint for product-specific linting
  • Added lint steps to CI workflows

Cleanup

  • Deleted packages/ats/sdk/.eslintignore (ignores moved to config)
  • Added .npmrc with legacy-peer-deps=true for pre-existing Hardhat peer dep conflicts

How has this been tested?

  • npm run lint passes on all 7 packages without introducing new errors
  • npm run ats:lint:js lints only ATS packages
  • npm run mass-payout:lint lints only Mass Payout packages
  • Verified no regressions: pre-existing warnings remain, no new violations

Types of changes

  • Refactor (non-breaking change that restructures existing code)
  • Chore (tooling, configuration, dependencies)

Checklist

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have read the CONTRIBUTING document
  • I have added tests to cover my changes (N/A - tooling change)
  • All new and existing tests pass

Signed-off-by: rbermejo <ruben@io.builders>
@hedera-eng-infrastructure
Copy link
Copy Markdown

hedera-eng-infrastructure commented Feb 17, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@rubenbermejo3 rubenbermejo3 marked this pull request as draft February 17, 2026 10:11
@rubenbermejo3 rubenbermejo3 changed the title feat: [BBND-1155] ESLint refactor chore: [BBND-1155] ESLint refactor Feb 17, 2026
@rubenbermejo3 rubenbermejo3 self-assigned this Feb 17, 2026
@rubenbermejo3 rubenbermejo3 added the no-changeset bypass changeset check label Feb 17, 2026
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
…ESLintRefactor

Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
Signed-off-by: rbermejo <ruben@io.builders>
@rubenbermejo3 rubenbermejo3 marked this pull request as ready for review February 25, 2026 13:58
@rubenbermejo3 rubenbermejo3 merged commit b282505 into development Feb 27, 2026
17 checks passed
@rubenbermejo3 rubenbermejo3 deleted the feat/BBND-1155-ESLintRefactor branch February 27, 2026 08:22
jaime-iobermudez added a commit that referenced this pull request Feb 27, 2026
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
jaime-iobermudez added a commit that referenced this pull request Mar 2, 2026
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
jaime-iobermudez added a commit that referenced this pull request Mar 3, 2026
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changeset bypass changeset check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants