edm115-lint

My very own sensible lint and style configs to reuse across my repos

Usage

pwsh
pnpm add -D edm115-lint

ESLint

ts
// eslint.stylistic.config.ts
import stylistic from "@stylistic/eslint-plugin"
import tsParser from "@typescript-eslint/parser"

import { eslint as edm115Lint } from "edm115-lint"
// or import edm115Lint from "edm115-lint/eslint"

export default [
  { ignores: [ "**/dist/", "**/node_modules/" ] },
  {
    files: ["**/*.ts"],
    linterOptions: { reportUnusedDisableDirectives: false },
    languageOptions: {
      ecmaVersion: "latest",
      sourceType: "module",
      parser: tsParser,
      parserOptions: {
        ecmaVersion: "latest",
        tsconfigRootDir: import.meta.dirname,
      },
    },
    plugins: { "@stylistic": stylistic },
    rules: edm115Lint,
  },
]

OxLint

New config format

ts
// oxlint.config.ts
import { oxlint as edm115Lint } from "edm115-lint"
// or import edm115Lint from "edm115-lint/oxlint"
import { defineConfig } from "oxlint"

export default defineConfig({
  extends: [edm115Lint],
  plugins: ["vue"],
  env: {
    "es2025": true,
    "browser": true,
    "shared-node-browser": true,
  },
  ignorePatterns: [
    "**/.nuxt/",
    "**/.output/",
    "**/dist/",
    "**/node_modules/",
  ],
  options: {
    typeAware: true,
  },
})

Old config format

jsonc
// .oxlintrc.json
{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "extends": ["./node_modules/edm115-lint/.oxlintrc.base.json"], // when oxlint resolves properly node_modules, switch to "edm115-lint/oxlintrc"
  "plugins": [ "vue" ],
  "env": {
    "es2025": true,
    "browser": true,
    "shared-node-browser": true
  },
  "ignorePatterns": [
    "**/.nuxt/",
    "**/.output/",
    "**/dist/",
    "**/node_modules/"
  ]
}
We use Cloudflare Web Analytics to collect anonymous data about your usage of this website. Are you okay with this ?