| import blitzPlugin from '@blitz/eslint-plugin'; | |
| import { jsFileExtensions } from '@blitz/eslint-plugin/dist/configs/javascript.js'; | |
| import { getNamingConventionRule, tsFileExtensions } from '@blitz/eslint-plugin/dist/configs/typescript.js'; | |
| export default [ | |
| { | |
| ignores: ['**/dist', '**/node_modules', '**/.wrangler', '**/bolt/build', '**/.history'], | |
| }, | |
| ...blitzPlugin.configs.recommended(), | |
| { | |
| rules: { | |
| '@blitz/catch-error-name': 'off', | |
| '@typescript-eslint/no-this-alias': 'off', | |
| '@typescript-eslint/no-empty-object-type': 'off', | |
| '@blitz/comment-syntax': 'off', | |
| '@blitz/block-scope-case': 'off', | |
| 'array-bracket-spacing': ['error', 'never'], | |
| 'object-curly-newline': ['error', { consistent: true }], | |
| 'keyword-spacing': ['error', { before: true, after: true }], | |
| 'consistent-return': 'error', | |
| semi: ['error', 'always'], | |
| curly: ['error'], | |
| 'no-eval': ['error'], | |
| 'linebreak-style': ['error', 'unix'], | |
| 'arrow-spacing': ['error', { before: true, after: true }], | |
| }, | |
| }, | |
| { | |
| files: ['**/*.tsx'], | |
| rules: { | |
| ...getNamingConventionRule({}, true), | |
| }, | |
| }, | |
| { | |
| files: ['**/*.d.ts'], | |
| rules: { | |
| '@typescript-eslint/no-empty-object-type': 'off', | |
| }, | |
| }, | |
| { | |
| files: [...tsFileExtensions, ...jsFileExtensions, '**/*.tsx'], | |
| ignores: ['functions/*'], | |
| rules: { | |
| 'no-restricted-imports': [ | |
| 'error', | |
| { | |
| patterns: [ | |
| { | |
| group: ['../'], | |
| message: "Relative imports are not allowed. Please use '~/' instead.", | |
| }, | |
| ], | |
| }, | |
| ], | |
| }, | |
| }, | |
| ]; | |