UNPKG

@lionstone-digital/eslint-config

Version:
83 lines (77 loc) 1.72 kB
import eslint from '@eslint/js' import stylistic from '@stylistic/eslint-plugin' import eslintImportX from 'eslint-plugin-import-x' import eslintNoRelativeImportPaths from 'eslint-plugin-no-relative-import-paths' import globals from 'globals' export default [ // Base { languageOptions: { globals: { ...globals.browser, ...globals.node }, ecmaVersion: 'latest', sourceType: 'module' } }, { files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'] }, { ignores: ['**/node_modules/**', '**/dist/**', '**/assets/**', '**/*.config.js'] }, // For JavaScript eslint.configs.recommended, // For Imports { plugins: { 'import-x': eslintImportX }, settings: { 'import-x/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx'] }, 'import-x/resolver': { typescript: true, node: true } }, rules: { 'import-x/no-unresolved': 'error' } }, { plugins: { 'no-relative-import-paths': eslintNoRelativeImportPaths }, rules: { 'no-relative-import-paths/no-relative-import-paths': [ 'error', { allowSameFolder: true } ] } }, // For Custom Rules { rules: { 'no-console': 'error' } }, // For Stylistic { plugins: { '@stylistic': stylistic }, rules: { '@stylistic/padding-line-between-statements': [ 'error', { blankLine: 'always', prev: '*', next: 'return' }, { blankLine: 'always', prev: ['const', 'let', 'var'], next: '*' }, { blankLine: 'any', prev: ['const', 'let', 'var'], next: ['const', 'let', 'var'] } ] } } ]