1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | const eslint_config_standard_1 = __importDefault(require("./eslint-config-standard"));
|
6 | const equivalents = [
|
7 | 'comma-spacing',
|
8 | 'dot-notation',
|
9 | 'brace-style',
|
10 | 'func-call-spacing',
|
11 | 'indent',
|
12 | 'keyword-spacing',
|
13 | 'lines-between-class-members',
|
14 | 'no-array-constructor',
|
15 | 'no-dupe-class-members',
|
16 | 'no-redeclare',
|
17 | 'no-throw-literal',
|
18 | 'no-unused-vars',
|
19 | 'no-unused-expressions',
|
20 | 'no-useless-constructor',
|
21 | 'quotes',
|
22 | 'semi',
|
23 | 'space-before-function-paren'
|
24 | ];
|
25 | const ruleFromStandard = (name) => {
|
26 | if (eslint_config_standard_1.default.rules === undefined)
|
27 | throw new Error();
|
28 | const rule = eslint_config_standard_1.default.rules[name];
|
29 | if (rule === undefined)
|
30 | throw new Error();
|
31 | if (typeof rule !== 'object')
|
32 | return rule;
|
33 | return JSON.parse(JSON.stringify(rule));
|
34 | };
|
35 | function fromEntries(iterable) {
|
36 | return [...iterable].reduce((obj, [key, val]) => {
|
37 | obj[key] = val;
|
38 | return obj;
|
39 | }, {});
|
40 | }
|
41 | const config = {
|
42 | extends: 'eslint-config-standard',
|
43 | plugins: ['@typescript-eslint'],
|
44 | overrides: [
|
45 | {
|
46 | files: ['*.ts', '*.tsx'],
|
47 | parser: '@typescript-eslint/parser',
|
48 | rules: {
|
49 |
|
50 | 'no-undef': 'off',
|
51 |
|
52 | ...fromEntries(equivalents.map((name) => [name, 'off'])),
|
53 | camelcase: 'off',
|
54 | 'no-use-before-define': 'off',
|
55 |
|
56 | ...fromEntries(equivalents.map((name) => [`@typescript-eslint/${name}`, ruleFromStandard(name)])),
|
57 | '@typescript-eslint/no-use-before-define': ['error', {
|
58 | functions: false,
|
59 | classes: false,
|
60 | enums: false,
|
61 | variables: false,
|
62 | typedefs: false
|
63 | }],
|
64 |
|
65 | '@typescript-eslint/adjacent-overload-signatures': 'error',
|
66 | '@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
|
67 | '@typescript-eslint/consistent-type-assertions': [
|
68 | 'error',
|
69 | {
|
70 | assertionStyle: 'as',
|
71 | objectLiteralTypeAssertions: 'never'
|
72 | }
|
73 | ],
|
74 | '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],
|
75 | '@typescript-eslint/explicit-function-return-type': ['error', {
|
76 | allowExpressions: true,
|
77 | allowHigherOrderFunctions: true,
|
78 | allowTypedFunctionExpressions: true,
|
79 | allowDirectConstAssertionInArrowFunctions: true
|
80 | }],
|
81 | '@typescript-eslint/member-delimiter-style': [
|
82 | 'error',
|
83 | {
|
84 | multiline: { delimiter: 'none' },
|
85 | singleline: { delimiter: 'comma', requireLast: false }
|
86 | }
|
87 | ],
|
88 | '@typescript-eslint/method-signature-style': 'error',
|
89 | '@typescript-eslint/naming-convention': ['error', {
|
90 | selector: 'variableLike',
|
91 | leadingUnderscore: 'allow',
|
92 | trailingUnderscore: 'allow',
|
93 | format: ['camelCase', 'PascalCase', 'UPPER_CASE']
|
94 | }],
|
95 | '@typescript-eslint/no-base-to-string': 'error',
|
96 | '@typescript-eslint/no-dynamic-delete': 'error',
|
97 | '@typescript-eslint/no-empty-interface': ['error', { allowSingleExtends: true }],
|
98 | '@typescript-eslint/no-extra-non-null-assertion': 'error',
|
99 | '@typescript-eslint/no-extraneous-class': ['error', { allowWithDecorator: true }],
|
100 | '@typescript-eslint/no-floating-promises': 'error',
|
101 | '@typescript-eslint/no-for-in-array': 'error',
|
102 | '@typescript-eslint/no-implied-eval': 'error',
|
103 | '@typescript-eslint/no-invalid-void-type': 'error',
|
104 | '@typescript-eslint/no-misused-new': 'error',
|
105 | '@typescript-eslint/no-misused-promises': 'error',
|
106 | '@typescript-eslint/no-namespace': 'error',
|
107 | '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
|
108 | '@typescript-eslint/no-non-null-assertion': 'error',
|
109 | '@typescript-eslint/no-this-alias': ['error', { allowDestructuring: true }],
|
110 | '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error',
|
111 | '@typescript-eslint/no-unnecessary-type-assertion': 'error',
|
112 | '@typescript-eslint/no-var-requires': 'error',
|
113 | '@typescript-eslint/prefer-function-type': 'error',
|
114 | '@typescript-eslint/prefer-includes': 'error',
|
115 | '@typescript-eslint/prefer-nullish-coalescing': ['error', { ignoreConditionalTests: false, ignoreMixedLogicalExpressions: false }],
|
116 | '@typescript-eslint/prefer-optional-chain': 'error',
|
117 | '@typescript-eslint/prefer-readonly': 'error',
|
118 | '@typescript-eslint/prefer-reduce-type-parameter': 'error',
|
119 | '@typescript-eslint/prefer-ts-expect-error': 'error',
|
120 | '@typescript-eslint/promise-function-async': 'error',
|
121 | '@typescript-eslint/require-array-sort-compare': ['error', { ignoreStringArrays: true }],
|
122 | '@typescript-eslint/restrict-plus-operands': ['error', { checkCompoundAssignments: true }],
|
123 | '@typescript-eslint/restrict-template-expressions': ['error', { allowNumber: true }],
|
124 | '@typescript-eslint/return-await': ['error', 'always'],
|
125 | '@typescript-eslint/strict-boolean-expressions': ['error', {
|
126 | allowString: false,
|
127 | allowNumber: false,
|
128 | allowNullableObject: false,
|
129 | allowNullableBoolean: false,
|
130 | allowNullableString: false,
|
131 | allowNullableNumber: false,
|
132 | allowAny: false
|
133 | }],
|
134 | '@typescript-eslint/triple-slash-reference': ['error', { lib: 'never', path: 'never', types: 'never' }],
|
135 | '@typescript-eslint/type-annotation-spacing': 'error',
|
136 | 'no-void': ['error', { allowAsStatement: true }]
|
137 | }
|
138 | }
|
139 | ]
|
140 | };
|
141 | module.exports = config;
|
142 |
|
\ | No newline at end of file |