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.mjs

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

export default defineConfig([jsConfig, ignoresConfig])

TypeScript Config

// eslint.config.mjs

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.mjs

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.mjs

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.mjs

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.mjs

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