fonts-vault/eslint.config.mjs
bo.yu 19b371e610 chore: initialize project with Next.js app structure and tooling
- Add Next.js application with app router and API routes for brands, categories, fonts, styles, and sync management
- Set up authentication system with NextAuth configuration and protected routes
- Create admin dashboard with management interfaces for brands, categories, fonts, and styles
- Implement database layer with Drizzle ORM and SQLite with migration files
- Add public pages for font browsing, documentation, and login functionality
- Configure development tools including ESLint, Prettier, Husky pre-commit hooks, and lint-staged
- Set up TypeScript configuration with strict type checking and path aliases
- Create reusable UI component library using shadcn/ui and Radix primitives
- Implement service layer for business logic (brands, categories, fonts, styles, sync, CSS generation)
- Add utility functions for authentication, error handling, logging, and performance monitoring
- Configure Next.js with custom middleware for request handling and routing
- Set up testing infrastructure with Vitest and test files for admin and docs pages
- Add project documentation including implementation summaries and API guides
- Configure build tools with PostCSS and Tailwind CSS for styling
- Initialize database with seed data and connection utilities
- Add environment configuration and public assets (favicon, icons, manifest)
2025-11-26 16:44:20 +08:00

33 lines
744 B
JavaScript

import { FlatCompat } from "@eslint/eslintrc";
import { dirname } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
},
{
rules: {
'@typescript-eslint/no-explicit-any': 'warn',
'react/no-unescaped-entities': 'warn',
'@next/next/no-html-link-for-pages': 'warn',
'@next/next/no-img-element': 'warn',
},
},
];
export default eslintConfig;