@susisu/eslint-config
v0.0.92
Published
My ESLint config
Downloads
850
Readme
@susisu/eslint-config
Requirements
- eslint >= 9.10.0 < 10
Installation
# npm
npm i -D eslint @susisu/eslint-config
# yarn
yarn add -D eslint @susisu/eslint-config
# pnpm
pnpm add -D eslint @susisu/eslint-config
Usage
NOTE: Formatting rules are not enabled. I recommend using Prettier.
The package provides a factory function that configures all language settings and rules for each file type.
Minimum setup
import { config } from "@susisu/eslint-config";
export default config({
tsconfigRootDir: import.meta.dirname,
});
Options and custom configs
export default config(
// Options
{
// Enable recommended rules. (default: true)
recommendedRules: true,
// Default sourceType for .js files. (default: "module")
jsSourceType: "module",
// Set languageOptions.parserOptions.projectService for TypeScript files. (default: true)
// If both `tsProjectService` and `tsProject` are enabled, only `tsProjectService` will have effect.
tsProjectService: true,
// Set languageOptions.parserOptions.project for TypeScript files. (default: false)
tsProject: false,
// Set languageOptions.parserOptions.tsconfigRootDir for TypeScript files. (default: undefined)
tsconfigRootDir: undefined,
// If true, mixes eslint-config-prettier to disable formatting rules. (default: true)
prettier: true,
},
// Custom configs
[
{
files: ["/path/to/file.js"],
// Configs in `extends` are expanded in the same way as tseslint.config() does.
// See https://typescript-eslint.io/packages/typescript-eslint#flat-config-extends
extends: [somePlugin.recommended],
rules: {
"no-console": "off",
},
},
],
);
);
What does config()
do?
- Set linter options
- Enable
reportUnusedDisableDirectives
- Enable
- Install plugins
- typescript-eslint (rule prefix:
@typescript-eslint/*
) - ESLint Stylistic (rule prefix:
@stylistic/*
) - eslint-plugin-safe-typescript (rule prefix:
@susisu/safe-typescript/*
)
- typescript-eslint (rule prefix:
- Set language options for JS and TS files
- Set
sourceType: "module"
for .js, .mjs, .ts, .tsx, .cts, .ctsx, .mts, .mtsx - Set
sourceType: "commonjs"
for .cjs - Enable typescript-eslint parser and typed linting for TS files
- Set
- Enable recommended rules
- Apply custom configs
- Disable rules that can conflict with Prettier
See the source code for more details.
Error levels
error
: problems that should be fixed in most of the projects and contextswarn
: problems that might be fixed depending on the project or context, or just notifications (like highlighting TODO comments)