Skip to content

ESLint's configuration of Mobile Reality Team

License

Notifications You must be signed in to change notification settings

kylegillen/eslint-config

 
 

Repository files navigation

@mobile-reality/eslint-config

Version GitHub stars npm total downloads npm week downloads Last master branch commit License


ESLint's configuration of Mobile Reality team.


Table of Contents

Requirements

  • node: ^16.13 || ^18.15.0
  • eslint: ^8.37.0
  • eslint-plugin-prettier: ^4.2.0

Installation and usage for a new project

  1. Install nextriot/eslint-config, eslint, prettier and eslint-plugin-prettier:

    yarn add -D nextriot/eslint-config eslint prettier
  2. Add to your root .eslintrc.js file:

    const config = {
        root: true,
        env: {}, // env config is based on project scope eg is it only node or node+browser
        settings: {
            react: {
                version: 'detect',
            },
            'import/resolver': {
                typescript: {
                    project: ['./tsconfig.json'],
                },
            },
        },
        extends: [
            '@nextriot/eslint-config/react-native', // base config based on project scope, XXX described below
            'plugin:prettier/recommended', // to include prettier rules in eslint
            'plugin:markdown/recommended', // to include markdown rules in eslint
            'plugin:import/recommended', // to include import rules in eslint
        ],
        // if jest is used jest config should be added to overrides section
        overrides: [
            {
                files: ['test/**/*.test.ts'], // glob pattern has to match test files
                extends: ['@nextriot/eslint-config/configs/jest'],
            },
        ],
        rules: {
            'prettier/prettier': [
                'warn',
                {
                    semi: false,
                    singleQuote: true,
                    arrowParens: 'avoid',
                    bracketSpacing: true,
                    printWidth: 120,
                },
            ],
            'react/react-in-jsx-scope': 0,
            'react/destructuring-assignment': 0,
            'unicorn/filename-case': 0,
            'no-duplicate-imports': 0,
            'import/no-duplicates': 1,
        },
    };
    
    module.exports = config;

    XXX is a preconfigured eslint config for MR projects. Supported configs with required peerDependencies (which must be installed in project):

    • node-javascript
    • node-typescript (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0)
    • react-javascript (eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort)
    • react-typescript (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0 eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort)
    • react-native (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0 eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort eslint-plugin-react-native)
  3. Install deps:

    yarn add -D @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-react  eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort eslint-plugin-react-native eslint-plugin-unicorn eslint-plugin-markdown eslint-plugin-prettier  eslint-plugin-import eslint-import-resolver-typescript

Installation and usage for an existing project

  1. Remove all ESLint and prettier dependencies (e.g. eslint, prettier, eslint-plugin-prettier, @typescript-eslint/eslint-plugin etc.) from package.json
  2. Reinstall node_modules (so remove them and install with npm i or yarn install)
  3. Go to the installation step

Override

You can override rules by adding a rule to the rules section e.g.:

module.exports = {
    root: true,
    extends: ['@mobile-reality'],
    rules: {
        'no-console': 'off',
    },
};

Used packages

License

MIT

About

ESLint's configuration of Mobile Reality Team

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Shell 0.5%