UNPKG

@vulog/aima-core

Version:

113 lines (112 loc) 4.52 kB
module.exports = { parser: '@typescript-eslint/parser', parserOptions: { // Indicates the location of the TypeScript configuration file project: 'tsconfig.json', // Sets the root directory for the TypeScript configuration tsconfigRootDir: __dirname, // Specifies the version of ECMAScript syntax to be used ecmaVersion: 'latest', // Indicates the type of source code (script or module) sourceType: 'module', }, plugins: ['@typescript-eslint', 'prettier', 'import'], extends: [ 'airbnb-base', 'airbnb-typescript/base', 'plugin:@typescript-eslint/recommended', 'prettier', 'plugin:prettier/recommended', ], root: true, env: { es6: true, node: true, }, ignorePatterns: [ '/dist/**/*', // Ignore built files. '.eslintrc.js', '**/*.test.ts', ], rules: { // Configures the Prettier integration with ESLint 'prettier/prettier': ['error', { endOfLine: 'auto' }], // Disables the rule requiring an 'I' prefix for interfaces '@typescript-eslint/interface-name-prefix': 'off', // Configures the naming conventions for various code constructs '@typescript-eslint/naming-convention': [ // ... various naming convention configurations ... 'error', // Allows any naming format for destructured variables { selector: 'variable', modifiers: ['destructured'], format: null, }, // Requires strict camelCase for function names { selector: 'function', format: ['strictCamelCase'], }, // Requires boolean variables to have one of the specified prefixes { selector: 'variable', format: null, types: ['boolean'], prefix: ['is', 'should', 'has', 'can', 'did', 'will'], }, // Requires enum names to have a strict PascalCase format { selector: 'enum', format: ['StrictPascalCase'], }, ], 'import/extensions': 'off', // Disables the rule requiring explicit return types for functions '@typescript-eslint/explicit-function-return-type': 'off', // Disables the rule requiring explicit boundary types for modules '@typescript-eslint/explicit-module-boundary-types': 'off', // Disables the rule prohibiting the use of 'any' type '@typescript-eslint/no-explicit-any': 'off', // Disables the rule detecting unused variables 'no-unused-vars': 0, // Disables the rule disallowing named exports used as a default export 'import/no-named-as-default': 0, // Configures the order and formatting of import statements 'import/order': [ // ... import order configuration ... 'error', { // Configure the alphabetization settings alphabetize: { // Enforce ascending alphabetical order order: 'asc', // Do not ignore the case while sorting caseInsensitive: false, }, // Enforce newlines between different groups and inside groups of imports 'newlines-between': 'always-and-inside-groups', // Warn when there is an import statement that is not part of any group warnOnUnassignedImports: true, }, ], // Configures the rule detecting extraneous dependencies 'import/no-extraneous-dependencies': [ // ... extraneous dependencies configuration ... 'error', { // Specify the file patterns where devDependencies imports are allowed devDependencies: [ // Allow devDependencies imports in test and spec files '**/*.test.{ts,js}', '**/*.spec.{ts,js}', // Allow devDependencies imports in the 'test' folder './test/**.{ts,js}', // Allow devDependencies imports in the 'scripts' folder './scripts/**/*.{ts,js}', ], }, ], 'import/prefer-default-export': 'off', }, };