chore: migrate backend to Node 24 ESM, Vitest, and Biome - #23
Merged
Conversation
CrazzyBuilds
force-pushed
the
chore/update-backend-dependencies
branch
from
August 7, 2026 19:23
02a44bc to
efca093
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This Pull Request modernizes the backend codebase (variamos_ms_admin) by upgrading it to Node 24 native ES Modules (ESM). It replaces the slow Jest runner with Vitest for fast, native ESM test runs, and swaps ESLint/Prettier with Biome (Rust-based) for lightning-fast linting and formatting. TypeScript compilation constraints have also been hardened by removing generic
any/unknowntypes in favor of strict domain-specific types.Key Changes
uuid,cookie,helmet, andgoogle-auth-library) to their latest major versions, and updated all remaining packages to their latest stable minor/patch versions."type": "module"inpackage.json, settsconfig.jsonto"moduleResolution": "node16", and automated the addition of.js//index.jsextensions required by ESM.tsc-aliasinto the build process to rewrite@src/*path aliases to relative imports, removing the runtime dependency onmodule-alias.vitest.config.tsand refactored dynamic mocks from synchronous Jest APIs to Vitest's asynchronousawait vi.importActual.biome.jsonand cleaned up all deprecated ESLint/Prettier dependencies.any/unknowntypes from repository filter parameters (BaseRepositoryand query parameters) by implementing strict SQL-compliant union types and TypeScript generics.@stryker-mutator/vitest-runner, and updated GitHub Actions (ci.yml) to run Biome checks.taze(runnable vianpm run check-updates) to easily check and manage minor/patch package updates.How to Test
npm installto ensure all packages are up to date.npm run typecheckto verify TypeScript types compile successfully under TS 6.npm run lintto execute Biome and verify that the linter/formatter returns zero errors or warnings.npm run testto verify that all unit and integration tests run and pass under Vitest.npm run check-archto verify that Clean Architecture boundaries are respected (dependency-cruiser).npm run buildto ensure the production build compiles with all path aliases resolved.