MoonDeck uses a flat configuration format via eslint.config.mjs. The configuration integrates recommended rules from @eslint/js, type-checked rules from typescript-eslint, and stylistic rules from @stylistic/eslint-plugin.
Key configuration aspects include:
- Type Checking: Uses
tsconfig.json for parser options to enable type-aware linting. - Stylistic Preferences: Configured for
1tbs brace style, double quotes, no trailing commas, and mandatory semicolons. - Unused Variables: The
@typescript-eslint/no-unused-vars rule is strictly enforced but allows ignoring variables that start with an underscore (_). - Import Sorting: Enforces strict import sorting via
sort-imports with specific member syntax orders.
import { defineConfig } from "eslint/config";
import eslint from "@eslint/js";
import stylistic from "@stylistic/eslint-plugin";
import tseslint from "typescript-eslint";
export default defineConfig(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
stylistic.configs.customize({
arrowParens: true,
braceStyle: "1tbs",
commaDangle: "never",
quotes: "double",
semi: true
}),
// ... additional rules and file overrides
);