2020-04-29 09:33:39 +00:00
|
|
|
module.exports = {
|
|
|
|
root: true,
|
|
|
|
extends: [
|
|
|
|
'eslint:recommended',
|
|
|
|
],
|
|
|
|
parserOptions: {
|
|
|
|
'ecmaVersion': 2017,
|
|
|
|
},
|
|
|
|
env: {
|
|
|
|
'node': true,
|
|
|
|
'es6': true,
|
|
|
|
},
|
|
|
|
rules: {
|
|
|
|
'camelcase': ['error', {
|
|
|
|
'properties': 'always',
|
|
|
|
'ignoreDestructuring': false,
|
|
|
|
'ignoreImports': false,
|
|
|
|
}],
|
|
|
|
'comma-dangle': ['error', 'always-multiline'],
|
|
|
|
'comma-spacing': ['error', { 'before': false, 'after': true }],
|
|
|
|
'curly': ['error', 'all'],
|
|
|
|
'eol-last': ['error', 'never'],
|
|
|
|
'indent': ['error', 4],
|
|
|
|
'key-spacing': ['error', {
|
|
|
|
'beforeColon': false,
|
|
|
|
'afterColon': true,
|
|
|
|
'mode': 'strict',
|
|
|
|
}],
|
|
|
|
'keyword-spacing': ['error', {
|
|
|
|
'after': true,
|
|
|
|
'overrides': {
|
|
|
|
'if': { 'after': false },
|
|
|
|
'for': { 'after': false },
|
|
|
|
'while': { 'after': false },
|
|
|
|
},
|
|
|
|
}],
|
|
|
|
'max-classes-per-file': ['error', 1],
|
|
|
|
'max-len': ['error', 150],
|
|
|
|
'no-console': ['warn'],
|
|
|
|
'no-empty': ['error', { 'allowEmptyCatch': false }],
|
|
|
|
'no-multi-spaces': ['error', { 'ignoreEOLComments': false }],
|
|
|
|
'no-trailing-spaces': ['error', { 'ignoreComments': false }],
|
|
|
|
'no-warning-comments': ['warn', { 'location': 'start' }],
|
|
|
|
'object-curly-spacing': ['error', 'always'],
|
|
|
|
'quotes': ['error', 'single'],
|
|
|
|
'semi': ['error', 'always'],
|
|
|
|
'sort-imports': ['error', {
|
|
|
|
'ignoreCase': false,
|
|
|
|
'ignoreDeclarationSort': false,
|
|
|
|
'ignoreMemberSort': false,
|
2020-09-21 12:56:11 +00:00
|
|
|
'memberSyntaxSortOrder': ['none', 'all', 'multiple', 'single'],
|
2020-04-29 09:33:39 +00:00
|
|
|
}],
|
|
|
|
'sort-vars': ['error', { 'ignoreCase': true }],
|
|
|
|
'space-before-blocks': ['error', 'always'],
|
|
|
|
'space-before-function-paren': ['error', {
|
|
|
|
'anonymous': 'always',
|
|
|
|
'named': 'never',
|
2020-09-21 12:56:11 +00:00
|
|
|
'asyncArrow': 'always',
|
2020-04-29 09:33:39 +00:00
|
|
|
}],
|
|
|
|
'space-in-parens': ['error', 'never'],
|
|
|
|
'spaced-comment': ['error', 'always'],
|
|
|
|
},
|
|
|
|
overrides: [
|
|
|
|
{
|
|
|
|
files: ['*.ts'],
|
|
|
|
parser: '@typescript-eslint/parser',
|
|
|
|
parserOptions: {
|
|
|
|
project: 'tsconfig.json',
|
|
|
|
},
|
|
|
|
plugins: [
|
|
|
|
'@typescript-eslint',
|
|
|
|
],
|
|
|
|
extends: [
|
|
|
|
'plugin:@typescript-eslint/eslint-recommended',
|
|
|
|
'plugin:@typescript-eslint/recommended',
|
|
|
|
],
|
|
|
|
rules: {
|
2020-09-21 12:56:11 +00:00
|
|
|
'@typescript-eslint/naming-convention': [
|
|
|
|
'error',
|
|
|
|
{
|
|
|
|
'selector': 'default',
|
|
|
|
'format': ['camelCase'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'selector': 'variable',
|
|
|
|
'modifiers': ['const'],
|
|
|
|
'format': ['PascalCase', 'camelCase'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'selector': 'parameter',
|
|
|
|
'format': ['camelCase'],
|
|
|
|
'leadingUnderscore': 'allow',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'selector': 'typeLike',
|
|
|
|
'format': ['PascalCase'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'selector': 'interface',
|
|
|
|
'format': ['PascalCase'],
|
|
|
|
'prefix': ['I'],
|
|
|
|
},
|
|
|
|
],
|
2020-04-29 09:33:39 +00:00
|
|
|
'@typescript-eslint/no-empty-interface': ['error', { 'allowSingleExtends': false }],
|
2020-09-21 12:56:11 +00:00
|
|
|
'quotes': 'off',
|
|
|
|
'@typescript-eslint/quotes': ['error', 'single'],
|
2020-04-29 09:33:39 +00:00
|
|
|
'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }],
|
2020-09-21 12:56:11 +00:00
|
|
|
},
|
|
|
|
},
|
2020-04-29 09:33:39 +00:00
|
|
|
],
|
|
|
|
};
|