Feat linter formatter choice#2196
Open
ER-28 wants to merge 2 commits into
Open
Conversation
added 2 commits
June 17, 2026 16:29
Add a new prompt to the interactive setup (npm run app:config) letting users choose between ESLint & Prettier (default) or Biome.js. When Biome is selected: - Creates biome.json with recommended rules matching the project's existing ESLint/Prettier config (single quotes, trailing commas, noUnusedVariables as error, noExplicitAny off) - Removes eslint.config.mjs, .prettierrc, and all ESLint/Prettier devDependencies from package.json - Adds @biomejs/biome devDependency - Updates lint script to use 'biome check --write' - Updates format script to use 'biome format --write' - Updates husky pre-commit to use 'npx biome check' - Removes '--fix' from post-generate scripts (biome uses --write)
Biome's useImportType enforces import type for type-only imports, which breaks NestJS decorator metadata reflection. Classes like @Injectable(), @controller(), etc. must be imported as value imports for the runtime metadata to work correctly.
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.
Summary
Add a new prompt to the interactive install script (
npm run app:config) that lets users choose between ESLint & Prettier (default) or Biome.js as their linter and formatter.Changes
New interactive prompt
When Biome is selected, the script:
biome.jsonwith:noUnusedVariables: error(mirrors existing ESLint rule)noExplicitAny: off,noNonNullAssertion: off(mirrors existing ESLint overrides)useImportType: off— critical for NestJS decorator metadata reflectioneslint.config.mjsand.prettierrceslint,prettier,@typescript-eslint/*,eslint-config-prettier,eslint-plugin-prettier,@eslint/*,globals@biomejs/biomedevDependencylint→biome check --write src/ test/ .install-scripts/format→biome format --write src/ test/ .install-scripts/.husky/pre-commit→npx biome check ...instead ofnpm run lint--fixfrom post-generate scripts (biome uses--write)Why
Biome is significantly faster than ESLint + Prettier (10-100x), has a single configuration file, and handles both linting and formatting. This gives users the choice without breaking existing workflows.