UNPKG

@byndyusoft/eslint-config

Version:
155 lines (138 loc) 7.04 kB
module.exports = { overrides: [ { files: ['*.ts', '*.tsx'], plugins: ['simple-import-sort'], rules: { // @typescript-eslint/eslint-plugin Supported rules '@typescript-eslint/array-type': [ 'error', { default: 'array-simple' } ], '@typescript-eslint/explicit-member-accessibility': 'error', '@typescript-eslint/member-ordering': [ 'error', { default: { memberTypes: [ // Index signature 'signature', // Fields 'public-static-field', 'protected-static-field', 'private-static-field', 'public-decorated-field', 'protected-decorated-field', 'private-decorated-field', 'public-instance-field', 'protected-instance-field', 'private-instance-field', 'public-abstract-field', 'protected-abstract-field', // Constructors 'public-constructor', 'protected-constructor', 'private-constructor', // public-static-{getter,setter} // protected-static-{getter,setter} // private-static-{getter,setter} // public-{getter,setter} // protected-{getter,setter} // private-{getter,setter} // Methods 'public-static-method', 'protected-static-method', 'private-static-method', 'public-decorated-method', 'protected-decorated-method', 'private-decorated-method', 'public-instance-method', 'protected-instance-method', 'private-instance-method', 'public-abstract-method', 'protected-abstract-method' ] } } ], // TODO: https://github.com/typescript-eslint/typescript-eslint/issues/929 '@typescript-eslint/method-signature-style': 'error', '@typescript-eslint/naming-convention': [ 'warn', { selector: 'class', format: ['PascalCase'] }, { selector: 'enum', format: ['PascalCase'] }, { selector: 'interface', format: ['PascalCase'] }, { selector: 'typeAlias', format: ['PascalCase'] }, { selector: 'enumMember', format: ['camelCase'] }, { selector: ['classProperty', 'parameterProperty', 'classMethod'], leadingUnderscore: 'forbid', trailingUnderscore: 'forbid', format: ['camelCase'] } ], // @typescript-eslint/eslint-plugin Extension Rules 'no-useless-constructor': 'off', // fix configs/ecmascript-6.js '@typescript-eslint/no-useless-constructor': 'error', // fix configs/ecmascript-6.js // eslint-plugin-simple-import-sort 'simple-import-sort/imports': [ 'warn', // style { groups: [ // Side effect imports ['^\\u0000'], // Node.js builtins. You could also generate this regex if you use a `.js` config. // For example: `^(${require("module").builtinModules.join("|")})(/|$)` [ '^(_http_agent|_http_client|_http_common|_http_incoming|_http_outgoing|_http_server|_stream_duplex|_stream_passthrough|_stream_readable|_stream_transform|_stream_wrap|_stream_writable|_tls_common|_tls_wrap|assert|async_hooks|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|fs/promises|http|http2|https|inspector|module|net|os|path|perf_hooks|process|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|trace_events|tty|url|util|v8|vm|wasi|worker_threads|zlib)(/|$)' ], // Packages. // Things that start with a letter (or digit or underscore), or `@` followed by a letter. ['^@?\\w'], // Absolute imports and other imports such as Vue-style `@/foo`. // Anything that does not start with a dot. ['^[^.]'], // Parent imports. Put `..` last. ['^\\.\\.(?!/?$)', '^\\.\\./?$'], // Other relative imports. Put same-folder imports and `.` last. ['^\\./(?=.*/)(?!/?$)', '^\\.(?!/?$)', '^\\./?$'] ] } ], 'simple-import-sort/exports': 'error', '@typescript-eslint/no-unsafe-enum-comparison': 'off' } }, { files: ['*Controller.ts'], rules: { // @typescript-eslint/eslint-plugin Supported rules '@typescript-eslint/member-ordering': 'off' } }, { files: ['*Dto.ts', '*Entity.ts'], rules: { // @typescript-eslint/eslint-plugin Supported rules '@typescript-eslint/member-ordering': 'off', '@typescript-eslint/no-inferrable-types': 'off' // for @nestjs/swagger } } ] };