Astro-based site with 40+ interactive math games, puzzles, and explorations. Includes admin dashboard, todo system, blog, theme/subcategory navigation, and embed pages for iframe embedding. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
import astroPlugin from "eslint-plugin-astro";
|
|
import astroParser from "astro-eslint-parser";
|
|
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
|
import tsParser from "@typescript-eslint/parser";
|
|
import simpleImportSort from "eslint-plugin-simple-import-sort";
|
|
|
|
export default [
|
|
{
|
|
ignores: [
|
|
"node_modules/**",
|
|
"dist/**",
|
|
".astro/**",
|
|
"src/components/ui/**",
|
|
],
|
|
},
|
|
|
|
// Lint .astro files
|
|
{
|
|
files: ["**/*.astro"],
|
|
languageOptions: {
|
|
parser: astroParser,
|
|
parserOptions: {
|
|
parser: tsParser,
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
},
|
|
},
|
|
plugins: { astro: astroPlugin, "simple-import-sort": simpleImportSort },
|
|
rules: {
|
|
...astroPlugin.configs.recommended.rules,
|
|
"simple-import-sort/imports": "error",
|
|
"simple-import-sort/exports": "error",
|
|
},
|
|
},
|
|
|
|
// Lint TS/JS/React files
|
|
{
|
|
files: ["**/*.{ts,tsx,js,jsx}"],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
ecmaFeatures: { jsx: true },
|
|
},
|
|
},
|
|
plugins: {
|
|
"@typescript-eslint": tsPlugin,
|
|
"simple-import-sort": simpleImportSort,
|
|
},
|
|
rules: {
|
|
...tsPlugin.configs.recommended.rules,
|
|
"simple-import-sort/imports": "error",
|
|
"simple-import-sort/exports": "error",
|
|
// Optional: relax some noisy rules if needed
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"warn",
|
|
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
|
|
],
|
|
},
|
|
},
|
|
];
|