|
@@ -1,3 +1,87 @@
|
|
-const annybs = require('@annybs/eslint')
|
|
|
|
|
|
+const eslint = require('@eslint/js');
|
|
|
|
+const tseslint = require('typescript-eslint');
|
|
|
|
|
|
-module.exports = [...annybs]
|
|
|
|
|
|
+module.exports = tseslint.config(
|
|
|
|
+ eslint.configs.recommended,
|
|
|
|
+ ...tseslint.configs.recommended,
|
|
|
|
+ {
|
|
|
|
+ ignores: ['dist', 'node_modules', 'eslint.config.js'],
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ rules: {
|
|
|
|
+ 'arrow-body-style': ['error', 'as-needed'],
|
|
|
|
+ 'arrow-spacing': 'error',
|
|
|
|
+ 'brace-style': ['error', '1tbs'],
|
|
|
|
+ 'comma-dangle': ['error', 'always-multiline'],
|
|
|
|
+ 'curly': ['off'],
|
|
|
|
+ 'eol-last': ['error', 'always'],
|
|
|
|
+ 'indent': ['error', 2],
|
|
|
|
+ 'jsx-quotes': ['error', 'prefer-double'],
|
|
|
|
+ 'line-comment-position': ['error', 'above'],
|
|
|
|
+ 'linebreak-style': ['error', 'unix'],
|
|
|
|
+ 'max-len': ['warn', { 'code': 160 }],
|
|
|
|
+ 'no-array-constructor': 'error',
|
|
|
|
+ 'no-eval': 'error',
|
|
|
|
+ 'no-lonely-if': 'error',
|
|
|
|
+ 'no-multi-assign': 'error',
|
|
|
|
+ 'no-new-object': 'error',
|
|
|
|
+ 'no-tabs': 'error',
|
|
|
|
+ 'no-trailing-spaces': 'warn',
|
|
|
|
+ 'no-unreachable': 'error',
|
|
|
|
+ 'no-var': 'error',
|
|
|
|
+ 'nonblock-statement-body-position': 'error',
|
|
|
|
+ 'one-var': ['error', 'never'],
|
|
|
|
+ 'prefer-arrow-callback': 'error',
|
|
|
|
+ 'prefer-const': 'warn',
|
|
|
|
+ 'quotes': ['error', 'single'],
|
|
|
|
+ 'semi': ['error', 'never'],
|
|
|
|
+ 'sort-imports': ['warn', {
|
|
|
|
+ 'memberSyntaxSortOrder': [
|
|
|
|
+ 'none',
|
|
|
|
+ 'all',
|
|
|
|
+ 'single',
|
|
|
|
+ 'multiple',
|
|
|
|
+ ],
|
|
|
|
+ }],
|
|
|
|
+ 'sort-vars': 'error',
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ files: ["**.ts"],
|
|
|
|
+ languageOptions: {
|
|
|
|
+ parserOptions: {
|
|
|
|
+ project: true,
|
|
|
|
+ tsconfigRootDir: __dirname,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ rules: {
|
|
|
|
+ '@typescript-eslint/consistent-type-imports': 'error',
|
|
|
|
+ '@typescript-eslint/member-delimiter-style': [
|
|
|
|
+ 'error',
|
|
|
|
+ {
|
|
|
|
+ 'multiline': {
|
|
|
|
+ 'delimiter': 'none',
|
|
|
|
+ 'requireLast': true,
|
|
|
|
+ },
|
|
|
|
+ 'singleline': {
|
|
|
|
+ 'delimiter': 'comma',
|
|
|
|
+ 'requireLast': false,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ '@typescript-eslint/type-annotation-spacing': [
|
|
|
|
+ 'error',
|
|
|
|
+ {
|
|
|
|
+ 'before': false,
|
|
|
|
+ 'after': true,
|
|
|
|
+ 'overrides': {
|
|
|
|
+ 'arrow': {
|
|
|
|
+ 'before': true,
|
|
|
|
+ 'after': true
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+)
|