tpmjs/packages/config/eslint/base.js
Ajax Davis 54f2c1a2d1 fix: resolve ESLint configuration and TypeScript errors across monorepo
- Add "type": "module" to @tpmjs/eslint-config package.json for ES module support
- Rename eslint.config.js to eslint.config.mjs in apps/web and packages/ui
- Update ESLint configs to ignore build directories (.next, dist, .turbo)
- Extend import/no-internal-modules allowlist for Next.js, testing libs, and React
- Fix unescaped quotes in playground page code elements
- Convert CardDescriptionProps from empty interface to type alias
- Disable jsx-a11y/no-autofocus rule in test files
- Change web app lint script from 'next lint' to 'eslint .'
- Fix TypeScript ref type inference errors in UI package tests by using non-null assertions
- Disable Biome noNonNullAssertion rule for test files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 13:25:30 +10:00

44 lines
932 B
JavaScript

import js from "@eslint/js";
import importPlugin from "eslint-plugin-import";
import tseslint from "typescript-eslint";
export default tseslint.config(
js.configs.recommended,
...tseslint.configs.recommended,
{
plugins: {
import: importPlugin,
},
rules: {
// Module boundaries
"import/no-internal-modules": [
"error",
{
allow: [
"@tpmjs/ui/*/[!index]*",
"@tpmjs/utils/*",
"@tpmjs/types/*",
"@tpmjs/eslint-config/*",
"next/**",
"./.next/*",
],
},
],
"import/no-restricted-paths": [
"error",
{
zones: [
{ target: "./packages", from: "./apps" },
{ target: "./packages/ui", from: "./packages/utils" },
],
},
],
"import/no-anonymous-default-export": "error",
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_" },
],
"@typescript-eslint/no-explicit-any": "warn",
},
},
);