@slango.configs/eslint
v1.1.38
Published
Slango eslint configs
Readme
Slango Eslint Configs (@slango.configs/eslint)
This package exposes eslint configurations for easy setup, the following presets are available:
| Name | Description | Includes |
| -------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------- |
| javascript-node | Intended to be used for tooling javascript files (eg: eslint.confg.js, linte-staged.config.js, ...) | - |
| typescript | Intended to be used for typescript based projects and libraries | javascript-node |
| typescript-node | Intended to be used for typescript based node projects and libraries | javascript-node + typescript |
| typescript-browser | Intended to be used for typescript based browser projects and libraries | javascript-node + typescript |
| typescript-next | Intended to be used for typescript based next.js applications | javascript-node + typescript |
Included plugins/configs
| Name | Available in Preset | Description |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------- |
| @eslint/js recommended | all | @eslint/js official recommended configuration |
| eslint-plugin-eslint-comments recommended | all | Comments from @eslint-community for comments |
| eslint-plugin-perfectionist recommended natural | all | Natural Recommended config from perfectionist-plugin-perfectionnist |
| eslint-plugin-regex recommended | all | Recommended config from regexp-eslint-plugin |
| eslint-plugin-prettier recommended | all | Prettier official eslint plugin's recommended config |
| eslint-plugin-import recommended | all | Prettier official eslint plugin's recommended config |
| typescript-eslint recommendedTypeChecked | all typescript configs | Typescript Eslint type checked recommended config |
| next/core-web-vitals | typescript-next | Next.js official eslint config |
Usage
Add @slango.configs/eslint to your package.json as a dev dependency, then create a eslint.config.js file in the package.
Unless you want to override the default configuration, you can simply extend the configuration as follows:
// eslint.config.js
export { default } from '@slango.configs/eslint/{preset-you-wish-to-use}.js';Perfectionist rule strictness
Perfectionist sorting rules can be configured with three levels of strictness:
off– disables all perfectionist sorting rulesrelaxed– only enforces module sorting (default)strict– enforces sorting for modules, enums, object types and objects
To use a custom level, import the corresponding creator and pass an options object. Passing an unknown option or an invalid level throws an error:
// eslint.config.js
import { createTypescriptConfig } from '@slango.configs/eslint/typescript.js';
export default createTypescriptConfig({ perfectionist: 'strict' });Things to take into account (and possibly review)
- At the time of writing eslint-config-next is not compatible with eslint 9, thus @eslint/compat and @eslint/eslintrc are used
- At the time of writing eslint-config-prettier is needed as a dependency to use eslint-plugin-prettier
- eslint-plugin-import-x supports eslint 9 but eslint-plugin-import does not usage comparison
- eslint-import-resolver-node does not seem to play well with monorepo/pattern exports in package.json (thus eslint-import-resolver-typescript is used even for javascript)
