Open
Description
Bug Template
Hey, I am having the issues with @typescript-eslint
on codeclimate. Locally eslint works fine but it raises an error when running on codeclimate: Configuration for rule "import/order" is invalid
.
Actual Behavior
No rules are configured. Make sure you have added a config file with rules enabled.
See our documentation at https://docs.codeclimate.com/docs/eslint for more information.
No rules are configured. Make sure you have added a config file with rules enabled.
See our documentation at https://docs.codeclimate.com/docs/eslint for more information.
No rules are configured. Make sure you have added a config file with rules enabled.
See our documentation at https://docs.codeclimate.com/docs/eslint for more information.
No rules are configured. Make sure you have added a config file with rules enabled.
See our documentation at https://docs.codeclimate.com/docs/eslint for more information.
Module not supported: prefer-arrow
/usr/local/node_modules/eslint/lib/shared/config-validator.js:138
throw new Error(`${source}:\n\t${enhancedMessage}`);
^
Error: .eslintrc.js:
Configuration for rule "import/order" is invalid:
Value {"alphabetize":{"order":"asc","caseInsensitive":true},"groups":["external","builtin","index","sibling","parent","internal","object"]} should NOT have additional properties.
at validateRuleOptions (/usr/local/node_modules/eslint/lib/shared/config-validator.js:138:19)
at /usr/local/node_modules/eslint/lib/shared/config-validator.js:193:9
at Array.forEach (<anonymous>)
at validateRules (/usr/local/node_modules/eslint/lib/shared/config-validator.js:190:30)
at validateConfigArray (/usr/local/node_modules/eslint/lib/shared/config-validator.js:337:9)
at CascadingConfigArrayFactory._finalizeConfigArray (/usr/local/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:392:13)
at CascadingConfigArrayFactory.getConfigArrayForFile (/usr/local/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:248:21)
at FileEnumerator._iterateFilesWithFile (/usr/local/node_modules/eslint/lib/cli-engine/file-enumerator.js:321:43)
at FileEnumerator._iterateFiles (/usr/local/node_modules/eslint/lib/cli-engine/file-enumerator.js:302:25)
at FileEnumerator.iterateFiles (/usr/local/node_modules/eslint/lib/cli-engine/file-enumerator.js:254:59)
Expected Behavior
I expect to build to pass
Steps to reproduce
.codeclimate.yml
version: "2"
checks:
argument-count:
config:
threshold: 8
complex-logic:
config:
threshold: 10
file-lines:
config:
threshold: 1000
method-complexity:
config:
threshold: 10
method-count:
config:
threshold: 20
method-lines:
config:
threshold: 50
nested-control-flow:
config:
threshold: 4
return-statements:
config:
threshold: 4
similar-code:
enabled: false
config:
threshold: # language-specific defaults. an override will affect all languages.
identical-code:
enabled: true
config:
threshold: # language-specific defaults. an override will affect all languages.
plugins:
eslint:
enabled: true
channel: "eslint-6"
config:
config: tsconfig.json
extensions:
- .js
- .ts
fixme:
enabled: true
config:
strings:
- FIXME
- BUG
- TODO
ratings:
paths:
- "src/**/*.ts"
exclude_patterns:
- ".circleci/"
- "__mocks__/"
- "**/tests/"
- "src/**/*.spec.ts"
- "src/**/*.model.ts"
- "docker/"
- "node_modules/"
- "**/documentation/"
- "**/node_modules/"
- "src/database/migrations/"
- "src/seed.ts"
- "src/scripts/"
- "README.md"
- "src/skill/fixtures.ts"
- "src/shared/fixtures.ts"
.eslintrc
module.exports = {
env: {
browser: true,
es6: true,
node: true,
},
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'plugin:import/errors',
'plugin:import/warnings',
'plugin:import/typescript',
'prettier/@typescript-eslint',
'plugin:prettier/recommended', //Make sure this is always the last configuration in the extends array
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.eslint.json',
sourceType: 'module',
},
plugins: ['@typescript-eslint', 'import', 'jsdoc', 'prefer-arrow'],
settings: {
'import/resolver': 'webpack',
},
rules: {
'@typescript-eslint/adjacent-overload-signatures': 'error',
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/await-thenable': 'off',
'@typescript-eslint/ban-ts-comment': [
'error',
{
'ts-ignore': false,
},
],
'@typescript-eslint/ban-types': [
'error',
{
extendDefaults: false,
types: {
Object: {
message: 'Avoid using the `Object` type. Did you mean `object`?',
},
Function: {
message:
'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.',
},
Boolean: {
message: 'Avoid using the `Boolean` type. Did you mean `boolean`?',
},
Number: {
message: 'Avoid using the `Number` type. Did you mean `number`?',
},
String: {
message: 'Avoid using the `String` type. Did you mean `string`?',
},
Symbol: {
message: 'Avoid using the `Symbol` type. Did you mean `symbol`?',
},
},
},
],
'@typescript-eslint/consistent-type-assertions': 'error',
'@typescript-eslint/dot-notation': 'error',
'@typescript-eslint/explicit-member-accessibility': [
'off',
{
accessibility: 'explicit',
},
],
'@typescript-eslint/explicit-module-boundary-types': 'warn',
'@typescript-eslint/member-delimiter-style': [
'error',
{
multiline: {
delimiter: 'semi',
requireLast: true,
},
singleline: {
delimiter: 'semi',
requireLast: false,
},
},
],
'@typescript-eslint/member-ordering': 'off',
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'enumMember',
format: ['PascalCase', 'UPPER_CASE'],
},
],
'@typescript-eslint/no-array-constructor': 'error',
'@typescript-eslint/no-empty-function': [
'error',
{
allow: ['constructors'],
},
],
'@typescript-eslint/no-empty-interface': 'error',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'@typescript-eslint/no-extra-semi': 'error',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-for-in-array': 'error',
'@typescript-eslint/no-implied-eval': 'error',
'@typescript-eslint/no-inferrable-types': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-misused-promises': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
'@typescript-eslint/no-non-null-assertion': 'warn',
'@typescript-eslint/no-parameter-properties': 'off',
'@typescript-eslint/no-this-alias': 'error',
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/no-unsafe-assignment': 'off', //TODO rule no-unsafe-assignment
'@typescript-eslint/no-unsafe-call': 'off', //TODO enable no-unsafe-call rule
'@typescript-eslint/no-unsafe-member-access': 'off', //TODO enable no-unsafe-member-access rule
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/no-unused-expressions': 'off',
'@typescript-eslint/no-unused-vars': 'warn',
'@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/no-var-requires': 'error',
'@typescript-eslint/prefer-as-const': 'error',
'@typescript-eslint/prefer-for-of': 'error',
'@typescript-eslint/prefer-function-type': 'error',
'@typescript-eslint/prefer-namespace-keyword': 'error',
'@typescript-eslint/prefer-regexp-exec': 'off',
'@typescript-eslint/quotes': ['off', 'single'],
'@typescript-eslint/require-await': 'off',
'@typescript-eslint/restrict-plus-operands': 'off',
'@typescript-eslint/restrict-template-expressions': [
'off',
{
allowNumber: true,
allowBoolean: true,
allowAny: true,
allowNullish: false,
},
],
'@typescript-eslint/semi': ['error', 'always'],
'@typescript-eslint/triple-slash-reference': [
'error',
{
path: 'always',
types: 'prefer-import',
lib: 'always',
},
],
'@typescript-eslint/unbound-method': 'off',
'@typescript-eslint/unified-signatures': 'error',
'arrow-parens': ['off', 'always'],
'brace-style': ['error', '1tbs'],
complexity: 'off',
'constructor-super': 'error',
curly: 'off',
'eol-last': 'error',
eqeqeq: ['error', 'smart'],
'guard-for-in': 'error',
'id-blacklist': [
'error',
'any',
'Number',
'number',
'String',
'string',
'Boolean',
'boolean',
'Undefined',
'undefined',
],
'id-match': 'error',
'import/no-unresolved': 2,
'import/order': [
'error',
{
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
groups: [
'external',
'builtin',
'index',
'sibling',
'parent',
'internal',
'object',
],
},
],
'jsdoc/check-alignment': 'error',
'jsdoc/check-indentation': [
'error',
{
excludeTags: ['example', 'description'],
},
],
'jsdoc/newline-after-description': 'error',
'max-classes-per-file': ['error', 1],
'max-len': [
'error',
{
code: 150,
ignoreComments: true,
},
],
'max-lines': ['error', 500],
'new-parens': 'error',
'no-array-constructor': 'off',
'no-bitwise': 'error',
'no-caller': 'error',
'no-cond-assign': 'error',
'no-console': [
'error',
{
allow: [
'dir',
'time',
'timeEnd',
'timeLog',
'trace',
'assert',
'clear',
'count',
'countReset',
'group',
'groupEnd',
'table',
'debug',
'dirxml',
'groupCollapsed',
'Console',
'profile',
'profileEnd',
'timeStamp',
'context',
],
},
],
'no-debugger': 'error',
'no-empty': 'error',
'no-empty-function': 'off',
'no-eval': 'error',
'no-extra-semi': 'off',
'no-fallthrough': 'off',
'no-invalid-this': 'off',
'no-new-wrappers': 'error',
'no-shadow': [
'off',
{
hoist: 'functions',
},
],
'no-throw-literal': 'error',
'no-trailing-spaces': 'error',
'no-undef-init': 'error',
'no-underscore-dangle': 'off',
'no-unsafe-finally': 'error',
'no-unused-labels': 'error',
'no-unused-vars': 'off',
'no-var': 'error',
'object-shorthand': 'error',
'one-var': ['off', 'never'],
'prefer-arrow/prefer-arrow-functions': 'off',
'prefer-const': 'error',
'quote-props': ['error', 'as-needed'],
radix: 'error',
'require-await': 'off',
'spaced-comment': [
'error',
'always',
{
markers: ['/'],
},
],
'use-isnan': 'error',
'valid-typeof': 'off',
},
};
package.json
{
"engines": {
"node": "12.x.x"
},
"engineStrict": true,
"dependencies": {
"@google-cloud/debug-agent": "5.1.2",
"@google-cloud/pubsub": "2.1.0",
"@google-cloud/storage": "5.1.1",
"@google-cloud/tasks": "2.0.1",
"@hapi/joi": "17.1.1",
"@nest-middlewares/cors": "6.0.1",
"@nest-middlewares/helmet": "6.0.0",
"@nest-middlewares/response-time": "6.0.0",
"@nestcloud/schedule": "0.7.5",
"@nestjs/common": "7.3.1",
"@nestjs/core": "7.3.1",
"@nestjs/graphql": "7.5.1",
"@nestjs/platform-express": "7.3.1",
"@nestjs/platform-socket.io": "7.3.1",
"@nestjs/swagger": "4.5.12",
"@nestjs/testing": "7.3.1",
"@nestjs/websockets": "7.3.1",
"@okta/jwt-verifier": "1.0.0",
"@reactivex/rxjs": "6.6.0",
"@slack/web-api": "5.10.0",
"@types/chance": "1.1.0",
"@types/express-jwt": "0.0.42",
"@types/jsforce": "^1.9.17",
"@types/lodash": "4.14.157",
"@types/node": "14.0.14",
"accesscontrol": "2.2.1",
"acorn": "^7.3.1",
"apollo-server-express": "2.15.1",
"async": "3.2.0",
"axios": "0.19.2",
"body-parser": "1.19.0",
"body-parser-xml": "^2.0.0",
"by-node-env": "2.0.1",
"chance": "1.1.6",
"chart.js": "2.9.3",
"chartjs-node-canvas": "3.0.6",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"colors": "1.4.0",
"cpx": "1.5.0",
"csv-parse": "4.10.1",
"dd-trace": "0.22.1",
"deepmerge": "4.2.2",
"dotenv": "8.2.0",
"express-jwt": "6.0.0",
"form-data": "3.0.0",
"googleapis": "52.1.0",
"graphql": "15.3.0",
"graphql-tools": "6.0.12",
"graphql-type-json": "0.3.2",
"hot-shots": "7.7.1",
"inquirer": "7.3.0",
"is-jpg": "2.0.0",
"jsforce": "1.9.3",
"jsonwebtoken": "8.5.1",
"launchdarkly-node-server-sdk": "5.13.3",
"lodash": "4.17.19",
"moment": "2.27.0",
"mustache": "4.0.1",
"neo4j-driver": "4.1.0",
"nest-schedule": "0.6.4",
"nest-status-monitor": "0.1.3",
"npm-run-all": "4.1.5",
"pg": "8.2.1",
"pushid": "1.0.0",
"read-chunk": "3.2.0",
"reflect-metadata": "0.1.13",
"replace-in-file": "6.1.0",
"request": "2.88",
"rosie": "2.0.1",
"rxjs": "6.6.0",
"rxjs-compat": "6.6.0",
"serialize-javascript": ">=4.0.0",
"sinon": "9.0.2",
"slonik": "^22.4.11",
"slonik-interceptor-query-logging": "^1.3.8",
"striptags": "3.1.1",
"swagger-ui-express": "4.1.4",
"trash-cli": "3.0.0",
"typed-rest-client": "1.7.3",
"typeorm": "0.2.25",
"typescript": "3.9.6",
"unirest": "0.6.0",
"uuid": "8.2.0",
"winston": "3.3.3"
},
"devDependencies": {
"@types/body-parser-xml": "^1.1.0",
"@types/express": "^4.17.6",
"@types/got": "9.6.11",
"@types/graphql": "14.5.0",
"@types/graphql-type-json": "0.3.2",
"@types/jest": "26.0.3",
"@types/jsonwebtoken": "8.5.0",
"@types/sinon": "9.0.4",
"@types/slonik": "22.1.2",
"@types/supertest": "2.0.10",
"@typescript-eslint/eslint-plugin": "^3.8.0",
"@typescript-eslint/parser": "^3.8.0",
"audit-ci": "3.1.1",
"envsub": "4.0.7",
"eslint": "^7.6.0",
"eslint-config-prettier": "^6.11.0",
"eslint-import-resolver-webpack": "^0.12.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jsdoc": "^30.2.0",
"eslint-plugin-prefer-arrow": "^1.2.2",
"eslint-plugin-prettier": "^3.1.4",
"husky": "4.2.5",
"jest": "26.1.0",
"jest-junit": "11.0.1",
"jest-runner-tsc": "1.6.0",
"lint-staged": "10.2.11",
"node-mocks-http": "1.8.1",
"npm-check": "5.9.2",
"prettier": "^2.0.5",
"supertest": "4.0.2",
"ts-jest": "26.1.1",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-node-dev": "1.0.0-pre.50",
"tsconfig-paths": "3.9.0",
"webpack": "4.43.0",
"webpack-cli": "3.3.12",
"webpack-node-externals": "1.7.2"
},
"resolutions": {
"**/**/handlebars": ">=4.5.2",
"**/**/https-proxy-agent": ">=3.0.0",
"**/**/dot-prop": ">=5.1.1",
"**/**/elliptic": ">=6.5.3",
"acorn": "^7.1.1",
"braces": ">=2.3.1",
"mem": ">=4.0.0",
"serialize-javascript": ">=2.1.1",
"tree-kill": ">=1.2.2",
"minimist": ">=1.2.3"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"**/*.{ts,js,md,json}": "prettier --write"
}
}
Metadata
Metadata
Assignees
Labels
No labels