eslint-config
Use when configuring ESLint - covers flat config, TypeScript integration, and custom rules
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when configuring ESLint - covers flat config, TypeScript integration, and custom rules
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when creating GitHub Actions workflows - covers CI/CD, matrix testing, and release automation
Use when writing Jest tests - covers testing patterns for interpreters, parsers, and async code
Use when designing language features - covers lexer, parser, AST, and interpreter patterns
Use when implementing Language Server Protocol features - covers completions, hover, diagnostics, and navigation
Use when creating Mermaid diagrams - covers flowcharts, sequence diagrams, and AST visualization
Use when publishing npm packages - covers package.json configuration, versioning, and provenance
| name | eslint-config |
| description | Use when configuring ESLint - covers flat config, TypeScript integration, and custom rules |
// eslint.config.js
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
{
files: ["src/**/*.ts"],
rules: {
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
},
},
{
ignores: ["dist/", "node_modules/"],
}
);
import tseslint from "typescript-eslint";
export default tseslint.config(
...tseslint.configs.strictTypeChecked,
{
languageOptions: {
parserOptions: {
project: "./tsconfig.json",
},
},
}
);
{
rules: {
// Disallow console in production
"no-console": "warn",
// Require explicit return types
"@typescript-eslint/explicit-function-return-type": "error",
// Prefer const
"prefer-const": "error",
// No floating promises
"@typescript-eslint/no-floating-promises": "error",
}
}
export default [
{
files: ["src/**/*.ts"],
rules: { /* production rules */ }
},
{
files: ["**/*.test.ts", "__tests__/**/*.ts"],
rules: {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "off",
}
},
{
files: ["scripts/**/*.ts"],
rules: {
"no-console": "off",
}
}
];
{
rules: {
// Allow switch fallthrough for token parsing
"no-fallthrough": ["error", { commentPattern: "falls?\\s*through" }],
// Allow bitwise for flags
"no-bitwise": "off",
// Complex functions in interpreters
"complexity": ["warn", 20],
"max-depth": ["warn", 5],
}
}
{
rules: {
"@typescript-eslint/naming-convention": [
"error",
{ selector: "interface", format: ["PascalCase"] },
{ selector: "typeAlias", format: ["PascalCase"] },
{ selector: "enum", format: ["PascalCase"] },
{ selector: "enumMember", format: ["UPPER_CASE"] },
]
}
}
// Old: .eslintrc.json
{
"extends": ["eslint:recommended"],
"rules": { "semi": "error" }
}
// New: eslint.config.js
import eslint from "@eslint/js";
export default [
eslint.configs.recommended,
{ rules: { semi: "error" } }
];
{
"scripts": {
"lint": "eslint src/",
"lint:fix": "eslint src/ --fix"
}
}