@team23/eslint-config-team23-ts

9.0.3 • Public • Published

eslint-config-team23-ts

A comprehensive ESLint configuration used by TEAM23 for maintaining consistent and strict TypeScript coding standards. This package includes a combination of stylistic and rigorous rule sets to ensure high code quality across TypeScript projects.

Installation

Add the library to your package.json as a devDependency:

npm i --save-dev @team23/eslint-config-team23-ts

To use the shareable config, import the package inside an eslint.config.js file and add it to the exported array:

// eslint.config.js (ES Module)
import { createTSEslintConfig } from "@team23/eslint-config-team23-ts";

export default [
    ...createTSEslintConfig(),
];
// eslint.config.js (CommonJS)
const { createTSEslintConfig } = require('@team23/eslint-config-team23-ts');

module.exports = [
    ...createTSEslintConfig(),
];

Additional settings

You can pass additional options to the createTSEslintConfig factory function. Checkout its type definitions for further information.

Overriding Settings

You can override settings from the shareable config by adding them directly into your eslint.config.js file after importing the shareable config. For example:

// eslint.config.js
import { createTSEslintConfig } from "@team23/eslint-config-team23-ts";

export default [
    ...createTSEslintConfig(),
    // Any settings added here will override team23TypeScript
    {
        rules: {
            "@typescript-eslint/prefer-readonly": "off",
        }
    }
];

Compatibility

Nx

If you are extending plugin:@nx/javascript in your eslint config, you will use the FlatCompat utility make them available in your flat config. (See the migration guide for more on this process.) While the Nx config can be used this way in parallel with the team23 TypeScript config, both configs define the plugin @typescript-eslint, which is not allowed. To use both configs, you can overwrite the plugins parameter in the FlatCompat result:

// eslint.config.js
import { createTSEslintConfig } from "@team23/eslint-config-team23-ts";

// Prepare compat following the migration guide
// [...]

export default [
    ...createTSEslintConfig(),

    ...compat
        .extends('plugin:@nx/javascript')
        .map(config => ({
            ...config,
            // Replace the plugins object to prevent redefining
            plugins: {},
        })),
];

Development

Creating a new version after rule changes

  1. Update CHANGELOG.md.
  2. Run npm version [ | major | minor | patch] -m "feat(core): ".
  3. Push commits and tags.
  4. Run npm publish --access public to publish the new version to npm.

/@team23/eslint-config-team23-ts/

    Package Sidebar

    Install

    npm i @team23/eslint-config-team23-ts

    Weekly Downloads

    283

    Version

    9.0.3

    License

    MIT

    Unpacked Size

    107 kB

    Total Files

    55

    Last publish

    Collaborators

    • tazlog
    • laura_schmid
    • schroeter
    • goester-team23
    • ademeter