UNPKG

zyros

Version:

A developer-friendly static site generator built with Next.js and Tailwind CSS. Transform a simple JSON file into a beautiful, fast static website.

91 lines (82 loc) 2.44 kB
import { dirname } from "path"; import { fileURLToPath } from "url"; import { FlatCompat } from "@eslint/eslintrc"; 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"), { rules: { "@typescript-eslint/no-unused-vars": "warn", "@typescript-eslint/no-explicit-any": "warn", "react/no-unescaped-entities": "warn", }, }, // Allow CommonJS in specific files { files: ["lib/*.js", "scripts/*.js", "index.js", "bin/*.js"], rules: { "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-var-requires": "off", }, }, { // Global ignores ignores: ['dist/**', 'build/**', '.next/**', 'node_modules/**'], }, { // Main config files: ['**/*.{js,jsx,ts,tsx}'], plugins: { react, '@next/next': nextPlugin, '@typescript-eslint': typescriptPlugin, }, languageOptions: { parser: typescriptParser, parserOptions: { ecmaVersion: 'latest', sourceType: 'module', ecmaFeatures: { jsx: true, }, }, globals: { ...globals.browser, ...globals.node, }, }, rules: { // Next.js specific rules ...nextPlugin.configs.recommended.rules, ...nextPlugin.configs['core-web-vitals'].rules, // React rules ...react.configs.recommended.rules, 'react/react-in-jsx-scope': 'off', 'react/prop-types': 'off', 'react/display-name': 'warn', // TypeScript rules '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-empty-function': 'warn', // General rules 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'warn', 'no-unused-vars': 'warn', // React Hooks 'react-hooks/rules-of-hooks': 'error', 'react-hooks/exhaustive-deps': 'warn', }, settings: { react: { version: 'detect', }, }, }, ]; export default eslintConfig;