Skip to content

hypernym-studio/eslint-config

Repository files navigation

@hypernym/eslint-config

Hypernym's internal config for ESLint.

Repository Package Releases Discussions


pnpm add -D @hypernym/eslint-config

Usage

Linting Commands

Add lint commands for manual linting (optional):

// package.json

{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint --fix ."
  }
}

JavaScript Config

// eslint.config.js

import { defineConfig, jsConfig, ignoresConfig } from '@hypernym/eslint-config'

export default defineConfig([jsConfig, ignoresConfig])

TypeScript Config

// eslint.config.js

import {
  defineConfig,
  jsConfig,
  tsConfig,
  ignoresConfig,
} from '@hypernym/eslint-config'

export default defineConfig([jsConfig, tsConfig, ignoresConfig])

Svelte/SvelteKit Config

Note

Install the required Svelte dependencies before using:

pnpm add -D eslint-plugin-svelte svelte-eslint-parser

Also, don't forget to add the svelte lang key to the eslint.validate vscode setting:

// .vscode/settings.json

{
  "eslint.validate": ["javascript", "typescript", "svelte"]
}
// eslint.config.js

import {
  defineConfig,
  jsConfig,
  tsConfig,
  ignoresConfig,
} from '@hypernym/eslint-config'
import { svelteConfig } from '@hypernym/eslint-config/svelte'

export default defineConfig([jsConfig, tsConfig, svelteConfig, ignoresConfig])

Vue/Nuxt Config

Note

Install the required Vue dependencies before using:

pnpm add -D eslint-plugin-vue vue-eslint-parser

Also, don't forget to add the vue lang key to the eslint.validate vscode setting:

// .vscode/settings.json

{
  "eslint.validate": ["javascript", "typescript", "vue"]
}
// eslint.config.js

import {
  defineConfig,
  jsConfig,
  tsConfig,
  ignoresConfig,
} from '@hypernym/eslint-config'
import { vueConfig } from '@hypernym/eslint-config/vue'

export default defineConfig([jsConfig, tsConfig, vueConfig, ignoresConfig])

React/Next Config

Note

Install the required React dependencies before using:

pnpm add -D eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh

Also, don't forget to add the react lang keys to the eslint.validate vscode setting:

// .vscode/settings.json

{
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}
// eslint.config.js

import { defineConfig, ignoresConfig } from '@hypernym/eslint-config'
import { jsxConfig, tsxConfig } from '@hypernym/eslint-config/react'

export default defineConfig([jsxConfig, tsxConfig, ignoresConfig])

Custom Setup

// eslint.config.js

import {
  defineConfig,
  globalIgnores,
  jsConfig,
  tsConfig,
  ignores,
} from '@hypernym/eslint-config'

export default defineConfig([
  jsConfig,
  tsConfig,
  {
    files: tsConfig.files,
    rules: {
      '@typescript-eslint/no-explicit-any': 'off',
      '@typescript-eslint/no-unused-vars': [
        'error',
        { ignoreRestSiblings: true },
      ],
    },
  },
  globalIgnores([...ignores, '**/dir/']),
])

For more info on how to ignore files, see the official docs.

Community

Feel free to ask questions or share new ideas.

Use the official discussions to get involved.

License

Developed in 🇭🇷 Croatia, © Hypernym Studio.

Released under the MIT license.

About

Hypernym's internal config for ESLint.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published