1.2.5 • Published 1 year ago

eslint-config-chema22r v1.2.5

Weekly downloads
121
License
MIT
Repository
github
Last release
1 year ago

CodeQL MIT License

ESLint Config

ESLint basic configuration for personal projects.

Installation

npm install --save-dev eslint-config-chema22r

Usage

This ESLint config adds the rules modularly, depending on the needs of the project. Those are the possible extensions and their requirements:

Extension IDAimRequirements (plugins)
eslint-config-chema22rFrontend Backendeslint-plugin-import eslint-plugin-promise
eslint-config-chema22r/jestFrontendeslint-plugin-jest
eslint-config-chema22r/mochaBackendeslint-plugin-mocha
eslint-config-chema22r/mongoBackend-
eslint-config-chema22r/nodeBackendeslint-plugin-node
eslint-config-chema22r/reactFrontendeslint-plugin-react eslint-plugin-react-hooks

All the extensions are compatible and can be combined.

All the extensions include a default configuration that can be overwritten (parserOptions, rules, settings, etc.).

All the extensions requirements must be installed or some of the imported rules might not work. E.g.: the extension eslint-config-chema22r imports a custom set of rules based on the extensions eslint:all, plugin:import/recommended and plugin:promise/recommended so in this case, not installing the plugin eslint-plugin-import or eslint-plugin-promise will disable all the rules related to the corresponding plugin, but the eslint rules will still be enabled.

Examples

Frontend Example Using React and Jest

{
    "env": {
        "browser": true,
        "es2021": true,
        "jest": true
    },
    "extends": [
        "chema22r",
        "chema22r/jest",
        "chema22r/react"
    ],
    "parserOptions": {
        "ecmaFeatures": {
            "impliedStrict": true,
            "jsx": true
        },
        "ecmaVersion": 2021,
        "sourceType": "module"
    },
    "parser": "babel-eslint",
    "rules": {}
}

In this example, the env and parserOptions fields are completely optional since they were already imported through the extensions used. Setting a different configuration here will merge and overwrite the imported one from the extensions. Important example: the imported parserOptions looks exactly as in the example, so if we set a different one locally as "parserOptions": { "ecmaFeatures": { "jsx": false } }, only the field jsx will be overwritten, keeping all remaining fields intact, even the impliedStrict field within ecmaFeatures.

Backend Example Using Node.js, MongoDB and Mocha

{
    "env": {
        "es2021": true,
        "mocha": true,
        "mongo": true,
        "node": true
    },
    "extends": [
        "chema22r",
        "chema22r/mocha",
        "chema22r/mongo",
        "chema22r/node"
    ],
    "parserOptions": {
        "ecmaFeatures": {
            "impliedStrict": true
        },
        "ecmaVersion": 2021,
        "sourceType": "module"
    },
    "rules": {}
}

In this example, the env and parserOptions fields are completely optional since they were already imported through the extensions used. Setting a different configuration here will merge and overwrite the imported one from the extensions. Important example: the imported env looks exactly as in the example, so if we set a different one locally as "env": { "es2019": true }, no field will be overwritten, keeping all remaining fields intact, even the es2021 field.

1.2.5

1 year ago

1.2.4

1 year ago

1.3.0

1 year ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago