npm.io
15.4.0 • Published 1 month ago

@asd14/eslint-config

Licence
Version
15.4.0
Deps
17
Size
153 kB
Vulns
0
Weekly
0

Release npm version

@asd14/eslint-config

ASD14's reusable ESLint configurations.

Installation

npm install --save-dev @asd14/eslint-config eslint@^9 prettier@^3 typescript@^6

eslint, prettier and typescript are peerDependencies

Exports

Entrypoint Description
@asd14/eslint-config/node Node.js source files config
@asd14/eslint-config/react TypeScript + React source files combo config
@asd14/eslint-config/ts TypeScript + Node.js source files combo config
@asd14/eslint-config/nx NX module boundary configs (strict + relaxed for dev)

All environment configs re-export commonIgnores array and devConfig for convenience.

Usage

import { tsConfig, commonIgnores, devConfig } from "@asd14/eslint-config/ts"

const SRC_FILES = ["src/**/*.ts"]
const TEST_FILES = ["src/**/*.test.ts"]
const DEV_FILES = ["eslint.config.js"]

/** @type {import("eslint").Linter.Config[]} */
export default [
  { ignores: [...commonIgnores] },
  {
    ...tsConfig,
    files: [...SRC_FILES]
  },
  {
    ...tsConfig,
    ...devConfig,
    files: [...TEST_FILES, ...DEV_FILES],
    rules: { ...tsConfig.rules, ...devConfig.rules }
  }
]
With NX

Compose the NX boundary configs into your source and dev entries.

import { tsConfig, commonIgnores, devConfig } from "@asd14/eslint-config/ts"
import { nxConfig, nxDevConfig } from "@asd14/eslint-config/nx"

const SRC_FILES = ["src/**/*.ts"]
const TEST_FILES = ["src/**/*.test.ts"]
const DEV_FILES = ["eslint.config.js"]

/** @type {import("eslint").Linter.Config[]} */
export default [
  { ignores: commonIgnores },
  {
    ...tsConfig,
    files: [...SRC_FILES],
    plugins: { ...tsConfig.plugins, ...nxConfig.plugins },
    rules: { ...tsConfig.rules, ...nxConfig.rules }
  },
  {
    ...tsConfig,
    ...devConfig,
    files: [...TEST_FILES, ...DEV_FILES],
    plugins: { ...tsConfig.plugins, ...nxDevConfig.plugins },
    rules: {
      ...tsConfig.rules,
      ...devConfig.rules,
      ...nxDevConfig.rules
    }
  }
]

License

MIT