@percuss.io/eslint-config-ericcarraway v6.0.2
eslint-config-ericcarraway
Shareable ESLint config for percuss.io JavaScript projects.
1. Install
https://www.npmjs.com/package/@percuss.io/eslint-config-ericcarraway
$ npm i --save-dev @percuss.io/eslint-config-ericcarrawayThis command will install this package & save it to your project's devDependencies.
2. Install peer dependencies
npm install --save-dev @eslint/js @stylistic/eslint-plugin eslint-plugin-import eslint-plugin-simple-import-sort eslint-plugin-sort-destructure-keys typescript-eslintThe following peer dependencies are required:
- @eslint/js
- @stylistic/eslint-plugin
- eslint-plugin-import
- eslint-plugin-simple-import-sort
- eslint-plugin-sort-destructure-keys
- typescript-eslint
Usage
Create an eslint.config.mjs file in your project root with the following content:
/**
* @module eslint.config.mjs
*/
// @ts-check
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import eslint from '@eslint/js';
import {
baseRules,
deprecatedNodeCommonJsRules,
disabledBasePersonalRules,
disabledTypescriptExtensionRules,
disabledTypescriptPersonalRules,
importRules,
simpleImportSortRules,
sortDestructureKeysRules,
stylisticRules,
typescriptRules,
} from '@percuss.io/eslint-config-ericcarraway';
import stylistic from '@stylistic/eslint-plugin';
import { flatConfigs as eslintPluginImport } from 'eslint-plugin-import';
import simpleImportSort from 'eslint-plugin-simple-import-sort';
import sortDestructureKeys from 'eslint-plugin-sort-destructure-keys';
import tseslint, { configs as tseslintConfigs } from 'typescript-eslint';
const directory = dirname(fileURLToPath(import.meta.url));
const lintConfig = tseslint.config(
{
ignores: [
// Add files/directories to ignore
],
},
eslint.configs.recommended,
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
eslintPluginImport.recommended,
tseslintConfigs.strictTypeChecked,
tseslintConfigs.stylisticTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: {
allowDefaultProject: [
//
`.prettierrc.cjs`,
`*.cjs`,
`*.js`,
`*.mjs`,
],
},
tsconfigRootDir: directory,
},
},
},
{
plugins: {
'@stylistic': stylistic,
'simple-import-sort': simpleImportSort,
'sort-destructure-keys': sortDestructureKeys,
},
},
{
rules: {
...baseRules,
...deprecatedNodeCommonJsRules,
...disabledBasePersonalRules,
...disabledTypescriptExtensionRules,
...disabledTypescriptPersonalRules,
...importRules,
...simpleImportSortRules,
...sortDestructureKeysRules,
...stylisticRules,
...typescriptRules,
},
},
);
// eslint-disable-next-line import/no-default-export
export default lintConfig;License
ISC
5 months ago
6 months ago
5 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
7 months ago
8 months ago
8 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago