6.0.2 • Published 5 months ago

@percuss.io/eslint-config-ericcarraway v6.0.2

Weekly downloads
370
License
ISC
Repository
github
Last release
5 months ago

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-ericcarraway

This 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-eslint

The following peer dependencies are required:

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

6.0.1

5 months ago

6.0.0

6 months ago

6.0.2

5 months ago

5.0.1-beta.8

7 months ago

5.0.1-beta.7

7 months ago

5.0.1-beta.9

7 months ago

5.0.1-beta.4

7 months ago

5.0.1-beta.3

8 months ago

5.0.1-beta.6

7 months ago

5.0.1-beta.0

8 months ago

5.0.1-beta.1

8 months ago

5.0.1-beta.14

6 months ago

5.0.1-beta.12

7 months ago

5.0.1-beta.13

7 months ago

5.0.1-beta.10

7 months ago

5.0.1-beta.11

7 months ago

4.1.0

1 year ago

4.0.0

1 year ago

3.0.0

1 year ago

2.1.1

1 year ago

2.1.0

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.19

2 years ago

1.1.18

2 years ago

1.1.20

2 years ago

1.1.17

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.14

4 years ago

1.1.13

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.10

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago