TypeScript ESLint Config 
ESLint configuration (with TypeScript support) for all our projects. Uses the new ESLint config format.
Installation
npm i --save-dev --save-exact @bifravst/eslint-config-typescript
Usage
Add a file eslint.config.js to your project, and adapt:
import config from "@bifravst/eslint-config-typescript";
export default [...config, { ignores: ["dist/*"] }];
Node.js type stripping
The config disallows TypeScript syntax that is not supported by
type stripping in Node.js:
enums, namespaces, parameter properties, import aliases (import x = N.y),
import x = require(), and export =.
If you override no-restricted-syntax in your own config, ESLint replaces the
rule's options instead of merging them, so copy the entries from this config
into yours to keep these checks.
It is also recommended to enable the
erasableSyntaxOnly
compiler option in your tsconfig.json:
{
"compilerOptions": {
"erasableSyntaxOnly": true
}
}
Node & NPM
This project requires Node.js >=24.19.0 <25 and npm >=12.0.2 <13 (enforced
via check-node-version on npm install and npm ci).
The check is skipped during npm publish and npm pack, because
semantic-release bundles its own npm (@semantic-release/npm depends on
npm@^11.6.2) and runs the publish with that version rather than the one
installed in CI.