@lint-my-life/eslint-config-semi

0.2.2 • Public • Published

Want more linters in your life, but without having to set them up? Welcome

Note: I will shortly refactor the packages to follow a standard + addon structure.

This package is published from a monorepo

Check https://github.com/DaniFoldi/lint-my-life for more details.

Usage

For any of the presets below, you can install them with one command:

npm install @lint-my-life/preset

Add this to your .eslintrc for eslint (omit eslint-config-):

{
  "extends": [ "@lint-my-life/preset" ]
}

Add this to your .stylelintrc for stylelint:

{
  "extends": [ "@lint-my-life/preset" ]
}

Presets:

  • eslint-config-standard
  • eslint-config-ts
  • eslint-config-react
  • eslint-config-react-ts
  • eslint-config-react-native
  • eslint-config-react-native-ts
  • eslint-config-vue
  • eslint-config-vue-ts
  • eslint-config-nuxt
  • eslint-config-jest
  • eslint-config-vitest
  • eslint-config-paintbrush
  • eslint-config-comet
  • stylelint-standard
  • stylelint-scss
  • stylelint-paintbrush
  • stylelint-vue
  • stylelint-vue-scss

Addons:

  • eslint-config-semi
  • eslint-config-unsorted
  • eslint-config-unsorted-ts
  • eslint-config-node
  • eslint-config-node-cjs

Install and append these after the preset.

Running with GitHub Actions

Add these steps to lint your repository:

      - uses: dorny/paths-filter@v2
        id: changes
        with:
          filters: |
            eslint:
              - '**/*.js'
              - '**/*.jsx'
              - '**/*.ts'
              - '**/*.tsx'
              - '**/*.mjs'
              - '**/*.cjs'
              - '**/*.vue'
            yamllint:
              - '**/*.yml'
              - '**/*.yaml'
            stylelint:
              - '**/*.css'
              - '**/*.scss'
              - '**/*.vue'


      # Change as needed
      - if: steps.changes.outputs.eslint == 'true'
        run: |
          npm run lint:js

Credits

Thanks to all authors that created the linter packages, and those that contributed to the presets and plugins this library is based on.

  • stylelint
  • stylelint-config-recommended
  • stylelint-config-standard
  • stylelint-config-recommended-scss
  • stylelint-config-standard-scss
  • stylelint-config-idiomatic-order
  • stylelint-high-performance-animation
  • stylelint-order
  • postcss
  • postcss-html
  • postcss-scss
  • eslint
  • eslint-config-import
  • eslint-config-unicorn
  • eslint-config-react
  • eslint-config-react-hooks
  • eslint-config-react-native
  • eslint-import-resolver-typescript
  • eslint-config-html
  • eslint-config-vue
  • eslint-config-nuxt
  • eslint-config-jest
  • eslint-config-vitest
  • vue-eslint-parser
  • @typescript-eslint/eslint-config
  • @typescript-eslint/parser
  • typescript
  • yamllint

Adding a new package

  • Add package to packages/ folder.
  • Add required copy rules to prepublish.mjs.
  • Add package to .github/workflows/main.yml.

Contributing

If you find false positives/false negatives, or combinations that don't work well, feel free to open an issue, or create a PR.

This project uses commit messages starting with emoji:

Emoji Prefix Description
:zap: for implementing or extending functionality
:zap::zap: for breaking changes
🔨 :hammer: for bug fixes
🔧 :wrench: for configurations
🚦 :vertical_traffic_light: for tests
📝 :memo: for documentations
🔍 :mag: for lint fixes
♻️ :recycle: for non-breaking refactoring
📎 :paperclip: for dependencies
:octocat: :octocat: for workflows
🚧 :construction: for experimental or temporary changes

Note

Yes, some of the rules/presets are opinionated. No, I will not create addons for the one rule you want to change (eg. "quotes'). They are not better in any way.

License

All packages, and this repository are licensed under the MIT license.

Package Sidebar

Install

npm i @lint-my-life/eslint-config-semi

Weekly Downloads

3

Version

0.2.2

License

MIT

Unpacked Size

13.5 kB

Total Files

5

Last publish

Collaborators

  • danifoldi