@enormora/eslint-config-base-with-prettier 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,39 +1,33 @@
1
1
  import arrayFunctionPlugin from 'eslint-plugin-array-func';
2
2
  import noBarrelFiles from 'eslint-plugin-no-barrel-files';
3
3
  import promisePlugin from 'eslint-plugin-promise';
4
+ import * as regexpPlugin from 'eslint-plugin-regexp';
4
5
  import sonarjsPlugin from 'eslint-plugin-sonarjs';
5
6
  import unicornPlugin from 'eslint-plugin-unicorn';
6
-
7
7
  const maxSwitchCases = 6;
8
-
9
8
  function isSonarjsRuleDeprecated(sonarjsRule) {
10
- return sonarjsRule.meta?.deprecated ?? false;
9
+ return Boolean(sonarjsRule.meta?.deprecated);
11
10
  }
12
-
13
- const nonDeprecatedSonarjsRuleNames = new Set(
14
- Object
15
- .entries(sonarjsPlugin.rules)
16
- .filter(([ , sonarjsRule ]) => {
17
- return !isSonarjsRuleDeprecated(sonarjsRule);
18
- })
19
- .map(([ sonarjsRuleName ]) => {
20
- return `sonarjs/${sonarjsRuleName}`;
21
- })
22
- );
23
-
24
- const nonDeprecatedSonarjsRecommendedRules = Object.fromEntries(
25
- Object.entries(sonarjsPlugin.configs.recommended.rules).filter(([ sonarjsRuleName ]) => {
26
- return nonDeprecatedSonarjsRuleNames.has(sonarjsRuleName);
27
- })
28
- );
29
-
11
+ const nonDeprecatedSonarjsRuleNames = new Set(Object
12
+ .entries(sonarjsPlugin.rules)
13
+ .filter(function removeDeprecated([, sonarjsRule]) {
14
+ return !isSonarjsRuleDeprecated(sonarjsRule);
15
+ })
16
+ .map(function toQualifiedRuleName([sonarjsRuleName]) {
17
+ return `sonarjs/${sonarjsRuleName}`;
18
+ }));
19
+ const sonarjsRecommendedRules = sonarjsPlugin.configs.recommended.rules ?? {};
20
+ const nonDeprecatedSonarjsRecommendedRules = Object.fromEntries(Object.entries(sonarjsRecommendedRules).filter(function keepNonDeprecated([sonarjsRuleName]) {
21
+ return nonDeprecatedSonarjsRuleNames.has(sonarjsRuleName);
22
+ }));
30
23
  export const bestPracticesRuleSet = {
31
24
  plugins: {
32
25
  unicorn: unicornPlugin,
33
26
  promise: promisePlugin,
34
27
  'array-func': arrayFunctionPlugin,
35
28
  sonarjs: sonarjsPlugin,
36
- 'no-barrel-files': noBarrelFiles
29
+ 'no-barrel-files': noBarrelFiles,
30
+ regexp: regexpPlugin
37
31
  },
38
32
  settings: {},
39
33
  rules: {
@@ -48,7 +42,7 @@ export const bestPracticesRuleSet = {
48
42
  'unicorn/no-null': 'off',
49
43
  'unicorn/catch-error-name': 'error',
50
44
  'unicorn/consistent-function-scoping': 'off',
51
- 'unicorn/custom-error-definition': 'off',
45
+ 'unicorn/custom-error-definition': 'error',
52
46
  'unicorn/error-message': 'error',
53
47
  'unicorn/escape-case': 'error',
54
48
  'unicorn/expiring-todo-comments': 'error',
@@ -67,7 +61,7 @@ export const bestPracticesRuleSet = {
67
61
  'unicorn/no-new-buffer': 'error',
68
62
  'unicorn/no-process-exit': 'error',
69
63
  'unicorn/no-unreadable-array-destructuring': 'error',
70
- 'unicorn/no-unused-properties': 'off',
64
+ 'unicorn/no-unused-properties': 'error',
71
65
  'unicorn/no-zero-fractions': 'error',
72
66
  'unicorn/number-literal-case': 'error',
73
67
  'unicorn/prefer-add-event-listener': 'error',
@@ -183,19 +177,16 @@ export const bestPracticesRuleSet = {
183
177
  'unicorn/prefer-response-static-json': 'error',
184
178
  'unicorn/isolated-functions': 'off',
185
179
  'unicorn/switch-case-break-position': 'error',
186
-
187
180
  'array-func/from-map': 'error',
188
181
  'array-func/no-unnecessary-this-arg': 'error',
189
182
  'array-func/prefer-array-from': 'error',
190
183
  'array-func/avoid-reverse': 'error',
191
184
  'array-func/prefer-flat-map': 'error',
192
185
  'array-func/prefer-flat': 'error',
193
-
194
186
  ...nonDeprecatedSonarjsRecommendedRules,
195
-
196
187
  'sonarjs/cognitive-complexity': 'off',
197
188
  'sonarjs/elseif-without-else': 'off',
198
- 'sonarjs/max-switch-cases': [ 'error', maxSwitchCases ],
189
+ 'sonarjs/max-switch-cases': ['error', maxSwitchCases],
199
190
  'sonarjs/no-all-duplicated-branches': 'error',
200
191
  'sonarjs/no-collapsible-if': 'error',
201
192
  'sonarjs/no-collection-size-mischeck': 'error',
@@ -226,7 +217,9 @@ export const bestPracticesRuleSet = {
226
217
  'sonarjs/prefer-object-literal': 'error',
227
218
  'sonarjs/prefer-single-boolean-return': 'error',
228
219
  'sonarjs/prefer-while': 'error',
229
-
220
+ // regexp/no-super-linear-backtracking subsumes this with a sound NFA-based analysis
221
+ // (sonarjs is heuristic); see the regexp/* block below.
222
+ 'sonarjs/slow-regex': 'off',
230
223
  'promise/avoid-new': 'off',
231
224
  'promise/no-nesting': 'error',
232
225
  'promise/no-promise-in-callback': 'error',
@@ -245,11 +238,99 @@ export const bestPracticesRuleSet = {
245
238
  'promise/no-new-statics': 'error',
246
239
  'promise/no-return-in-finally': 'error',
247
240
  'promise/valid-params': 'error',
248
- 'promise/prefer-await-to-then': [ 'error', { strict: true } ],
241
+ 'promise/prefer-await-to-then': ['error', { strict: true }],
249
242
  'promise/no-multiple-resolved': 'error',
250
243
  'promise/spec-only': 'error',
251
244
  'promise/prefer-catch': 'error',
252
-
253
- 'no-barrel-files/no-barrel-files': 'error'
245
+ 'no-barrel-files/no-barrel-files': 'error',
246
+ // eslint-plugin-regexp — purely additive on top of core / unicorn / sonarjs regex coverage.
247
+ // Rules with a working equivalent already in core, unicorn, or sonarjs are turned off here so
248
+ // each diagnostic is reported by exactly one rule. The only swap is regexp/no-super-linear-backtracking
249
+ // taking over from the (off-above) sonarjs/slow-regex.
250
+ 'regexp/confusing-quantifier': 'error',
251
+ 'regexp/control-character-escape': 'error',
252
+ 'regexp/match-any': 'error',
253
+ 'regexp/negation': 'error',
254
+ 'regexp/no-contradiction-with-assertion': 'error',
255
+ 'regexp/no-dupe-disjunctions': 'error',
256
+ 'regexp/no-empty-capturing-group': 'error',
257
+ 'regexp/no-empty-group': 'error',
258
+ 'regexp/no-empty-lookarounds-assertion': 'error',
259
+ 'regexp/no-empty-string-literal': 'error',
260
+ 'regexp/no-escape-backspace': 'error',
261
+ 'regexp/no-extra-lookaround-assertions': 'error',
262
+ 'regexp/no-invisible-character': 'error',
263
+ 'regexp/no-lazy-ends': 'error',
264
+ 'regexp/no-legacy-features': 'error',
265
+ 'regexp/no-misleading-capturing-group': 'error',
266
+ 'regexp/no-missing-g-flag': 'error',
267
+ 'regexp/no-non-standard-flag': 'error',
268
+ 'regexp/no-obscure-range': 'error',
269
+ 'regexp/no-octal': 'error',
270
+ 'regexp/no-optional-assertion': 'error',
271
+ 'regexp/no-potentially-useless-backreference': 'error',
272
+ 'regexp/no-standalone-backslash': 'error',
273
+ 'regexp/no-super-linear-backtracking': 'error',
274
+ 'regexp/no-super-linear-move': 'error',
275
+ 'regexp/no-trivially-nested-assertion': 'error',
276
+ 'regexp/no-trivially-nested-quantifier': 'error',
277
+ 'regexp/no-unused-capturing-group': 'error',
278
+ 'regexp/no-useless-assertions': 'error',
279
+ 'regexp/no-useless-character-class': 'error',
280
+ 'regexp/no-useless-dollar-replacements': 'error',
281
+ 'regexp/no-useless-flag': 'error',
282
+ 'regexp/no-useless-lazy': 'error',
283
+ 'regexp/no-useless-non-capturing-group': 'error',
284
+ 'regexp/no-useless-quantifier': 'error',
285
+ 'regexp/no-useless-range': 'error',
286
+ 'regexp/no-useless-set-operand': 'error',
287
+ 'regexp/no-useless-string-literal': 'error',
288
+ 'regexp/no-useless-two-nums-quantifier': 'error',
289
+ 'regexp/no-zero-quantifier': 'error',
290
+ 'regexp/optimal-lookaround-quantifier': 'error',
291
+ 'regexp/optimal-quantifier-concatenation': 'error',
292
+ 'regexp/prefer-escape-replacement-dollar-char': 'error',
293
+ 'regexp/prefer-named-backreference': 'error',
294
+ 'regexp/prefer-named-replacement': 'error',
295
+ 'regexp/prefer-result-array-groups': 'error',
296
+ 'regexp/prefer-set-operation': 'error',
297
+ 'regexp/prefer-unicode-codepoint-escapes': 'error',
298
+ 'regexp/simplify-set-operations': 'error',
299
+ // Overlap with existing rules — keep the existing rule as single source of truth.
300
+ 'regexp/no-control-character': 'off', // core no-control-regex
301
+ 'regexp/no-dupe-characters-character-class': 'off', // sonarjs/duplicates-in-character-class
302
+ 'regexp/no-empty-alternative': 'off', // sonarjs/no-empty-alternatives
303
+ 'regexp/no-empty-character-class': 'off', // core no-empty-character-class
304
+ 'regexp/no-invalid-regexp': 'off', // core no-invalid-regexp
305
+ 'regexp/no-misleading-unicode-character': 'off', // core no-misleading-character-class
306
+ 'regexp/no-useless-backreference': 'off', // core no-useless-backreference
307
+ 'regexp/no-useless-escape': 'off', // core no-useless-escape
308
+ 'regexp/prefer-character-class': 'off', // unicorn/better-regex + sonarjs/concise-regex
309
+ 'regexp/prefer-d': 'off', // unicorn/better-regex
310
+ 'regexp/prefer-named-capture-group': 'off', // core prefer-named-capture-group
311
+ 'regexp/prefer-plus-quantifier': 'off', // unicorn/better-regex
312
+ 'regexp/prefer-question-quantifier': 'off', // unicorn/better-regex
313
+ 'regexp/prefer-regexp-exec': 'off', // @typescript-eslint/prefer-regexp-exec
314
+ 'regexp/prefer-regexp-test': 'off', // unicorn/prefer-regexp-test
315
+ 'regexp/prefer-star-quantifier': 'off', // unicorn/better-regex
316
+ 'regexp/prefer-w': 'off', // unicorn/better-regex
317
+ 'regexp/require-unicode-regexp': 'off', // matches core require-unicode-regexp (off)
318
+ 'regexp/strict': 'off', // unicorn/better-regex
319
+ // Pure style preferences outside the project's scope.
320
+ 'regexp/grapheme-string-literal': 'off',
321
+ 'regexp/hexadecimal-escape': 'off',
322
+ 'regexp/letter-case': 'off',
323
+ 'regexp/prefer-lookaround': 'off',
324
+ 'regexp/prefer-predefined-assertion': 'off',
325
+ 'regexp/prefer-quantifier': 'off',
326
+ 'regexp/prefer-range': 'off',
327
+ 'regexp/require-unicode-sets-regexp': 'off',
328
+ 'regexp/sort-alternatives': 'off',
329
+ 'regexp/sort-character-class-elements': 'off',
330
+ 'regexp/sort-flags': 'off',
331
+ 'regexp/unicode-escape': 'off',
332
+ 'regexp/unicode-property': 'off',
333
+ 'regexp/use-ignore-case': 'off'
254
334
  }
255
335
  };
336
+ //# sourceMappingURL=best-practices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best-practices.js","sourceRoot":"","sources":["../../../../configs/rule-sets/best-practices.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,52 @@
1
1
  import { builtinRules } from 'eslint/use-at-your-own-risk';
2
-
3
2
  const noRestrictedSyntaxRule = builtinRules.get('no-restricted-syntax');
4
-
5
3
  export function createRestrictedSyntaxPlugin(ruleNames) {
6
4
  return {
7
- rules: Object.fromEntries(
8
- ruleNames.map((ruleName) => {
9
- return [ ruleName, noRestrictedSyntaxRule ];
10
- })
11
- )
5
+ rules: Object.fromEntries(ruleNames.map(function toRuleEntry(ruleName) {
6
+ return [ruleName, noRestrictedSyntaxRule];
7
+ }))
12
8
  };
13
9
  }
14
-
15
10
  const defaultAllowedSuperClassNamePattern = '/Error$/';
16
11
  const defaultClassDeclarationMessage = 'Class declarations are not allowed except for extending errors.';
17
-
18
- export function createNoClassDeclarationRestriction({
19
- allowedSuperClassNamePattern = defaultAllowedSuperClassNamePattern,
20
- message = defaultClassDeclarationMessage
21
- } = {}) {
12
+ const defaultNoClassDeclarationOptions = {
13
+ allowedSuperClassNamePattern: defaultAllowedSuperClassNamePattern,
14
+ message: defaultClassDeclarationMessage
15
+ };
16
+ export function createNoClassDeclarationRestriction(options = defaultNoClassDeclarationOptions) {
17
+ const { allowedSuperClassNamePattern, message } = options;
22
18
  return {
23
19
  selector: `ClassDeclaration[superClass.name!=${allowedSuperClassNamePattern}]`,
24
20
  message
25
21
  };
26
22
  }
27
-
28
23
  export const noClassDeclarationRestriction = createNoClassDeclarationRestriction();
29
-
30
24
  export const noSwitchStatementRestriction = {
31
25
  selector: 'SwitchStatement',
32
26
  message: 'Use pattern matching instead.'
33
27
  };
34
-
35
- const emptyFunctionBodySelector = [ 'FunctionDeclaration', 'FunctionExpression', 'ArrowFunctionExpression' ]
36
- .map((kind) => {
37
- return `${kind} > BlockStatement[body.length=0]`;
38
- })
28
+ const emptyFunctionBodySelector = ['FunctionDeclaration', 'FunctionExpression', 'ArrowFunctionExpression']
29
+ .map(function toEmptyBodySelector(kind) {
30
+ return `${kind} > BlockStatement[body.length=0]`;
31
+ })
39
32
  .join(', ');
40
-
41
33
  export const noEmptyFunctionBodyRestriction = {
42
34
  selector: emptyFunctionBodySelector,
43
35
  message: 'Empty function bodies are not allowed, even with a comment.'
44
36
  };
45
-
46
37
  export const noInOperatorRestriction = {
47
38
  selector: 'BinaryExpression[operator="in"]',
48
39
  message: 'The `in` operator is not allowed. Use `Object.hasOwn` instead.'
49
40
  };
41
+ const lexicalBindingReferences = [
42
+ 'ThisExpression',
43
+ 'Super',
44
+ 'MetaProperty[meta.name="new"]',
45
+ 'Identifier[name="arguments"]'
46
+ ]
47
+ .join(', ');
48
+ export const noUnnecessaryArrowFunctionRestriction = {
49
+ selector: `ArrowFunctionExpression:not(:has(${lexicalBindingReferences}))`,
50
+ message: 'Arrow functions are only allowed when they use lexical `this`, `super`, `new.target`, or `arguments`.'
51
+ };
52
+ //# sourceMappingURL=restricted-syntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricted-syntax.js","sourceRoot":"","sources":["../../../../configs/rule-sets/restricted-syntax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAgB3D,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAExE,MAAM,UAAU,4BAA4B,CAAC,SAA4B;IACrE,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,WAAW,CACrB,SAAS,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,QAAgB;YAC/C,OAAO,CAAE,QAAQ,EAAE,sBAAsB,CAAE,CAAC;QAChD,CAAC,CAAC,CACL;KACJ,CAAC;AACN,CAAC;AAED,MAAM,mCAAmC,GAAG,UAAU,CAAC;AACvD,MAAM,8BAA8B,GAAG,iEAAiE,CAAC;AACzG,MAAM,gCAAgC,GAA8B;IAChE,4BAA4B,EAAE,mCAAmC;IACjE,OAAO,EAAE,8BAA8B;CAC1C,CAAC;AAEF,MAAM,UAAU,mCAAmC,CAC/C,UAAqC,gCAAgC;IAErE,MAAM,EAAE,4BAA4B,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1D,OAAO;QACH,QAAQ,EAAE,qCAAqC,4BAA4B,GAAG;QAC9E,OAAO;KACV,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,mCAAmC,EAAE,CAAC;AAEnF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IACxC,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,+BAA+B;CAC3C,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CAAE;KACvG,GAAG,CAAC,SAAS,mBAAmB,CAAC,IAAI;IAClC,OAAO,GAAG,IAAI,kCAAkC,CAAC;AACrD,CAAC,CAAC;KACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,6DAA6D;CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,gEAAgE;CAC5E,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC7B,gBAAgB;IAChB,OAAO;IACP,+BAA+B;IAC/B,8BAA8B;CACjC;KACI,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACjD,QAAQ,EAAE,oCAAoC,wBAAwB,IAAI;IAC1E,OAAO,EAAE,uGAAuG;CACnH,CAAC"}
@@ -1,24 +1,20 @@
1
1
  import stylisticPlugin from '@stylistic/eslint-plugin';
2
2
  import destructuringPlugin from 'eslint-plugin-destructuring';
3
- import { indentSize } from '../constants.js';
4
-
3
+ import { indentSize } from "../constants.js";
5
4
  export const stylisticRuleSet = {
6
5
  plugins: {
7
6
  destructuring: destructuringPlugin,
8
7
  '@stylistic': stylisticPlugin
9
8
  },
10
-
11
9
  settings: {},
12
-
13
10
  rules: {
14
11
  'destructuring/in-methods-params': 'error',
15
- 'destructuring/in-params': [ 'error', { 'max-params': 0 } ],
12
+ 'destructuring/in-params': ['error', { 'max-params': 0 }],
16
13
  'destructuring/no-rename': 'off',
17
-
18
14
  '@stylistic/array-bracket-newline': 'off',
19
- '@stylistic/array-bracket-spacing': [ 'error', 'always' ],
20
- '@stylistic/array-element-newline': [ 'error', 'consistent' ],
21
- '@stylistic/arrow-parens': [ 'error', 'always' ],
15
+ '@stylistic/array-bracket-spacing': ['error', 'always'],
16
+ '@stylistic/array-element-newline': ['error', 'consistent'],
17
+ '@stylistic/arrow-parens': ['error', 'always'],
22
18
  '@stylistic/arrow-spacing': [
23
19
  'error',
24
20
  {
@@ -27,8 +23,8 @@ export const stylisticRuleSet = {
27
23
  }
28
24
  ],
29
25
  '@stylistic/block-spacing': 'off',
30
- '@stylistic/brace-style': [ 'error', '1tbs', { allowSingleLine: false } ],
31
- '@stylistic/comma-dangle': [ 'error', 'never' ],
26
+ '@stylistic/brace-style': ['error', '1tbs', { allowSingleLine: false }],
27
+ '@stylistic/comma-dangle': ['error', 'never'],
32
28
  '@stylistic/comma-spacing': [
33
29
  'error',
34
30
  {
@@ -36,7 +32,7 @@ export const stylisticRuleSet = {
36
32
  after: true
37
33
  }
38
34
  ],
39
- '@stylistic/comma-style': [ 'error', 'last' ],
35
+ '@stylistic/comma-style': ['error', 'last'],
40
36
  '@stylistic/computed-property-spacing': [
41
37
  'error',
42
38
  'never',
@@ -44,15 +40,15 @@ export const stylisticRuleSet = {
44
40
  enforceForClassMembers: true
45
41
  }
46
42
  ],
47
- '@stylistic/dot-location': [ 'error', 'property' ],
43
+ '@stylistic/dot-location': ['error', 'property'],
48
44
  '@stylistic/eol-last': 'error',
49
45
  '@stylistic/exp-list-style': 'off',
50
46
  '@stylistic/exp-jsx-props-style': 'off',
51
- '@stylistic/function-call-spacing': [ 'error', 'never' ],
52
- '@stylistic/function-call-argument-newline': [ 'error', 'consistent' ],
47
+ '@stylistic/function-call-spacing': ['error', 'never'],
48
+ '@stylistic/function-call-argument-newline': ['error', 'consistent'],
53
49
  '@stylistic/function-paren-newline': 'off',
54
- '@stylistic/generator-star-spacing': [ 'error', { before: false, after: true } ],
55
- '@stylistic/indent-binary-ops': [ 'error', indentSize ],
50
+ '@stylistic/generator-star-spacing': ['error', { before: false, after: true }],
51
+ '@stylistic/indent-binary-ops': ['error', indentSize],
56
52
  '@stylistic/implicit-arrow-linebreak': 'off',
57
53
  '@stylistic/indent': [
58
54
  'error',
@@ -94,7 +90,7 @@ export const stylisticRuleSet = {
94
90
  after: true
95
91
  }
96
92
  ],
97
- '@stylistic/linebreak-style': [ 'error', 'unix' ],
93
+ '@stylistic/linebreak-style': ['error', 'unix'],
98
94
  '@stylistic/lines-between-class-members': [
99
95
  'error',
100
96
  'always',
@@ -116,7 +112,7 @@ export const stylisticRuleSet = {
116
112
  ignoreRegExpLiterals: true
117
113
  }
118
114
  ],
119
- '@stylistic/max-statements-per-line': [ 'error', { max: 1 } ],
115
+ '@stylistic/max-statements-per-line': ['error', { max: 1 }],
120
116
  '@stylistic/member-delimiter-style': [
121
117
  'error',
122
118
  {
@@ -140,16 +136,16 @@ export const stylisticRuleSet = {
140
136
  '@stylistic/no-mixed-operators': 'off',
141
137
  '@stylistic/no-mixed-spaces-and-tabs': 'error',
142
138
  '@stylistic/no-multi-spaces': 'error',
143
- '@stylistic/no-multiple-empty-lines': [ 'error', { max: 1 } ],
139
+ '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],
144
140
  '@stylistic/no-tabs': 'error',
145
141
  '@stylistic/no-trailing-spaces': 'error',
146
142
  '@stylistic/no-whitespace-before-property': 'error',
147
143
  '@stylistic/nonblock-statement-body-position': 'off',
148
144
  '@stylistic/object-curly-newline': 'off',
149
- '@stylistic/object-curly-spacing': [ 'error', 'always' ],
145
+ '@stylistic/object-curly-spacing': ['error', 'always'],
150
146
  '@stylistic/object-property-newline': 'off',
151
147
  '@stylistic/one-var-declaration-per-line': 'error',
152
- '@stylistic/operator-linebreak': [ 'error', 'after', { overrides: { '?': 'before', ':': 'before' } } ],
148
+ '@stylistic/operator-linebreak': ['error', 'after', { overrides: { '?': 'before', ':': 'before' } }],
153
149
  '@stylistic/padded-blocks': [
154
150
  'error',
155
151
  'never',
@@ -170,10 +166,10 @@ export const stylisticRuleSet = {
170
166
  next: 'directive'
171
167
  }
172
168
  ],
173
- '@stylistic/quote-props': [ 'error', 'as-needed' ],
174
- '@stylistic/quotes': [ 'error', 'single', { avoidEscape: true } ],
175
- '@stylistic/rest-spread-spacing': [ 'error', 'never' ],
176
- '@stylistic/semi': [ 'error', 'always' ],
169
+ '@stylistic/quote-props': ['error', 'as-needed'],
170
+ '@stylistic/quotes': ['error', 'single', { avoidEscape: true }],
171
+ '@stylistic/rest-spread-spacing': ['error', 'never'],
172
+ '@stylistic/semi': ['error', 'always'],
177
173
  '@stylistic/semi-spacing': [
178
174
  'error',
179
175
  {
@@ -181,8 +177,8 @@ export const stylisticRuleSet = {
181
177
  after: true
182
178
  }
183
179
  ],
184
- '@stylistic/semi-style': [ 'error', 'last' ],
185
- '@stylistic/space-before-blocks': [ 'error', 'always' ],
180
+ '@stylistic/semi-style': ['error', 'last'],
181
+ '@stylistic/space-before-blocks': ['error', 'always'],
186
182
  '@stylistic/space-before-function-paren': [
187
183
  'error',
188
184
  {
@@ -191,7 +187,7 @@ export const stylisticRuleSet = {
191
187
  asyncArrow: 'always'
192
188
  }
193
189
  ],
194
- '@stylistic/space-in-parens': [ 'error', 'never' ],
190
+ '@stylistic/space-in-parens': ['error', 'never'],
195
191
  '@stylistic/space-infix-ops': 'error',
196
192
  '@stylistic/space-unary-ops': 'error',
197
193
  '@stylistic/spaced-comment': [
@@ -199,12 +195,12 @@ export const stylisticRuleSet = {
199
195
  'always',
200
196
  {
201
197
  line: {
202
- exceptions: [ '-', '+', '*' ],
203
- markers: [ '!', '/', '=>' ]
198
+ exceptions: ['-', '+', '*'],
199
+ markers: ['!', '/', '=>']
204
200
  },
205
201
  block: {
206
- exceptions: [ '-', '+', '*' ],
207
- markers: [ '!', '*' ],
202
+ exceptions: ['-', '+', '*'],
203
+ markers: ['!', '*'],
208
204
  balanced: true
209
205
  }
210
206
  }
@@ -218,15 +214,16 @@ export const stylisticRuleSet = {
218
214
  ],
219
215
  '@stylistic/curly-newline': 'off',
220
216
  '@stylistic/template-curly-spacing': 'error',
221
- '@stylistic/template-tag-spacing': [ 'error', 'never' ],
217
+ '@stylistic/template-tag-spacing': ['error', 'never'],
222
218
  '@stylistic/type-annotation-spacing': 'error',
223
219
  '@stylistic/type-generic-spacing': 'error',
224
220
  '@stylistic/type-named-tuple-spacing': 'error',
225
- '@stylistic/wrap-iife': [ 'error', 'inside' ],
221
+ '@stylistic/wrap-iife': ['error', 'inside'],
226
222
  '@stylistic/wrap-regex': 'off',
227
- '@stylistic/yield-star-spacing': [ 'error', { before: false, after: true } ],
223
+ '@stylistic/yield-star-spacing': ['error', { before: false, after: true }],
228
224
  '@stylistic/jsx-pascal-case': 'off',
229
225
  '@stylistic/line-comment-position': 'off',
230
226
  '@stylistic/multiline-comment-style': 'off'
231
227
  }
232
228
  };
229
+ //# sourceMappingURL=stylistic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylistic.js","sourceRoot":"","sources":["../../../../configs/rule-sets/stylistic.ts"],"names":[],"mappings":"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"}