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"
}
}