/easelint

A modern ESlint configuration for JavaScript, TypeScript and React that includes the Airbnb style guide, jsx-a11y to help with accessibility and Pettier to do some code formatting.

Primary LanguageJavaScriptMIT LicenseMIT

easelint

A modern ESlint configuration for JavaScript, TypeScript and React that includes the Airbnb style guide, jsx-a11y to help with accessibility and Pettier to do some code formatting.

easelint is released under the MIT license. PRs welcome!

A bit of context

It's always a bit time consuming to create or maintain different ESlint configurations that works with different languages and libraries such as TypeScript and React. The goal of this package is to have different configurations that just work out-of-the-box and that are constantly kept up-to-date.

Getting Started 🚀

Installing this packge is has as easy has any other packages. Simply use your favorite package manager. You'll need to install the required peer dependencies and than this packge.

Install ESlint and Prettier peer dependencies

Install ESlint and Prettier either locally or globally. (Note that locally, per project, is strongly preferred)

npm install eslint@8 --save-dev
npm install prettier@2 --save-dev --save-exact

If you use TypeScript or React you'll also need to install them, but let's assume they're already installed. We'll only support most recent version. Have a look at the peerDependencies field in the package.json to know which one we support.

Install easelint

npm install easelint --save-dev

Setup the configuration file

Using any file formats supported by ESlint, youll need to add "100terres" in the "extends" value of the configuration. Here's an example using a .eslintrc.js file.

Using the full configuration with JavaScript, TypeScript and React

const easelint = require("easelint");

module.exports = easelint({
  javascript: true,
  typescript: true,

  // we currently only support React
  jsxPragma: "react",

  eslint: {
    // any eslint configuration e.g.
    overrides: [
      {
        files: ["vite.config.ts"],
        rules: {
          "import/no-extraneous-dependencies": "off",
        },
      },
    ],
  },
});

Voilà! Your project now uses a linter.

How to Contribute 🤝

Pull requests are welcome. If you'd like to contribute to easelint, that's awesome. Simply open an issue explaining what we should change, improve or fix. If we decide that a change is required we can open a pull request and once everything looks good I'll approve and merge the PR.

License

Licensed under the MIT license.