@so1ve/eslint-plugin 0.37.0 → 0.37.1
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.
- package/dist/index.cjs +150 -24
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +150 -24
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4,16 +4,16 @@ const utils = require('@typescript-eslint/utils');
|
|
|
4
4
|
|
|
5
5
|
const createEslintRule = utils.ESLintUtils.RuleCreator((ruleName) => ruleName);
|
|
6
6
|
|
|
7
|
-
const RULE_NAME$
|
|
7
|
+
const RULE_NAME$6 = "generic-spacing";
|
|
8
8
|
const genericSpacing = createEslintRule({
|
|
9
|
-
name: RULE_NAME$
|
|
9
|
+
name: RULE_NAME$6,
|
|
10
10
|
meta: {
|
|
11
|
-
type: "
|
|
11
|
+
type: "layout",
|
|
12
12
|
docs: {
|
|
13
13
|
description: "Spaces around generic type parameters",
|
|
14
14
|
recommended: "error"
|
|
15
15
|
},
|
|
16
|
-
fixable: "
|
|
16
|
+
fixable: "whitespace",
|
|
17
17
|
schema: [],
|
|
18
18
|
messages: {
|
|
19
19
|
genericSpacingMismatch: "Generic spaces mismatch"
|
|
@@ -22,6 +22,7 @@ const genericSpacing = createEslintRule({
|
|
|
22
22
|
defaultOptions: [],
|
|
23
23
|
create: (context) => {
|
|
24
24
|
const sourceCode = context.getSourceCode();
|
|
25
|
+
const text = sourceCode.getText();
|
|
25
26
|
return {
|
|
26
27
|
TSTypeParameterDeclaration: (node) => {
|
|
27
28
|
const params = node.params;
|
|
@@ -219,7 +220,6 @@ const genericSpacing = createEslintRule({
|
|
|
219
220
|
if (!node.extends || !node.typeParameters) {
|
|
220
221
|
return;
|
|
221
222
|
}
|
|
222
|
-
const text = sourceCode.getText();
|
|
223
223
|
const { typeParameters } = node;
|
|
224
224
|
const extendsKeywordStart = typeParameters.range[1];
|
|
225
225
|
const extendsKeywordEnd = node.extends[0].range[0];
|
|
@@ -248,9 +248,9 @@ const genericSpacing = createEslintRule({
|
|
|
248
248
|
}
|
|
249
249
|
});
|
|
250
250
|
|
|
251
|
-
const RULE_NAME$
|
|
251
|
+
const RULE_NAME$5 = "import-dedupe";
|
|
252
252
|
const importDedupe = createEslintRule({
|
|
253
|
-
name: RULE_NAME$
|
|
253
|
+
name: RULE_NAME$5,
|
|
254
254
|
meta: {
|
|
255
255
|
type: "problem",
|
|
256
256
|
docs: {
|
|
@@ -298,16 +298,16 @@ const importDedupe = createEslintRule({
|
|
|
298
298
|
}
|
|
299
299
|
});
|
|
300
300
|
|
|
301
|
-
const RULE_NAME$
|
|
301
|
+
const RULE_NAME$4 = "space-between-generic-and-paren";
|
|
302
302
|
const spaceBetweenGenericAndParen = createEslintRule({
|
|
303
|
-
name: RULE_NAME$
|
|
303
|
+
name: RULE_NAME$4,
|
|
304
304
|
meta: {
|
|
305
|
-
type: "
|
|
305
|
+
type: "layout",
|
|
306
306
|
docs: {
|
|
307
307
|
description: "Spaces between generic type parameters and paren",
|
|
308
308
|
recommended: "error"
|
|
309
309
|
},
|
|
310
|
-
fixable: "
|
|
310
|
+
fixable: "whitespace",
|
|
311
311
|
schema: [],
|
|
312
312
|
messages: {
|
|
313
313
|
noSpaceBetweenGenericAndParen: "Expected no space between generic type parameters and paren"
|
|
@@ -374,16 +374,16 @@ const spaceBetweenGenericAndParen = createEslintRule({
|
|
|
374
374
|
}
|
|
375
375
|
});
|
|
376
376
|
|
|
377
|
-
const RULE_NAME$
|
|
377
|
+
const RULE_NAME$3 = "space-in-empty-block";
|
|
378
378
|
const spaceInEmptyBlock = createEslintRule({
|
|
379
|
-
name: RULE_NAME$
|
|
379
|
+
name: RULE_NAME$3,
|
|
380
380
|
meta: {
|
|
381
|
-
type: "
|
|
381
|
+
type: "layout",
|
|
382
382
|
docs: {
|
|
383
383
|
description: "Disallow spaces in empty block",
|
|
384
384
|
recommended: "error"
|
|
385
385
|
},
|
|
386
|
-
fixable: "
|
|
386
|
+
fixable: "whitespace",
|
|
387
387
|
schema: [],
|
|
388
388
|
messages: {
|
|
389
389
|
noSpaceInEmptyBlock: "Expected no space in empty block"
|
|
@@ -394,7 +394,7 @@ const spaceInEmptyBlock = createEslintRule({
|
|
|
394
394
|
const sourceCode = context.getSourceCode();
|
|
395
395
|
return {
|
|
396
396
|
BlockStatement: (node) => {
|
|
397
|
-
if (node.body.length) {
|
|
397
|
+
if (node.body.length || sourceCode.getCommentsInside(node).length) {
|
|
398
398
|
return;
|
|
399
399
|
}
|
|
400
400
|
const spaceStartRange = node.range[1] - 2;
|
|
@@ -441,16 +441,16 @@ const spaceInEmptyBlock = createEslintRule({
|
|
|
441
441
|
}
|
|
442
442
|
});
|
|
443
443
|
|
|
444
|
-
const RULE_NAME$
|
|
444
|
+
const RULE_NAME$2 = "semi-spacing";
|
|
445
445
|
const semiSpacing = createEslintRule({
|
|
446
|
-
name: RULE_NAME$
|
|
446
|
+
name: RULE_NAME$2,
|
|
447
447
|
meta: {
|
|
448
|
-
type: "
|
|
448
|
+
type: "layout",
|
|
449
449
|
docs: {
|
|
450
450
|
description: "Semicolon spacing",
|
|
451
451
|
recommended: "error"
|
|
452
452
|
},
|
|
453
|
-
fixable: "
|
|
453
|
+
fixable: "whitespace",
|
|
454
454
|
schema: [],
|
|
455
455
|
messages: {
|
|
456
456
|
noSpaceBeforeSemi: "Expected no space before semicolon"
|
|
@@ -490,11 +490,11 @@ const semiSpacing = createEslintRule({
|
|
|
490
490
|
}
|
|
491
491
|
});
|
|
492
492
|
|
|
493
|
-
const RULE_NAME = "no-inline-type-import";
|
|
493
|
+
const RULE_NAME$1 = "no-inline-type-import";
|
|
494
494
|
const noInlineTypeImport = createEslintRule({
|
|
495
|
-
name: RULE_NAME,
|
|
495
|
+
name: RULE_NAME$1,
|
|
496
496
|
meta: {
|
|
497
|
-
type: "
|
|
497
|
+
type: "layout",
|
|
498
498
|
docs: {
|
|
499
499
|
description: "Disallow inline type import",
|
|
500
500
|
recommended: "error"
|
|
@@ -539,6 +539,131 @@ import { ${valueSpecifiersText} } from "${node.source.value}";`);
|
|
|
539
539
|
}
|
|
540
540
|
});
|
|
541
541
|
|
|
542
|
+
const RULE_NAME = "space-before-function-paren";
|
|
543
|
+
const spaceBeforeFunctionParen = createEslintRule({
|
|
544
|
+
name: RULE_NAME,
|
|
545
|
+
meta: {
|
|
546
|
+
type: "layout",
|
|
547
|
+
docs: {
|
|
548
|
+
description: "Enforce consistent spacing before function parenthesis",
|
|
549
|
+
recommended: "error",
|
|
550
|
+
extendsBaseRule: true
|
|
551
|
+
},
|
|
552
|
+
fixable: "whitespace",
|
|
553
|
+
schema: [],
|
|
554
|
+
messages: {
|
|
555
|
+
spaceBeforeFunctionParenMismatch: "Space before function paren mismatch"
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
defaultOptions: [],
|
|
559
|
+
create: (context) => {
|
|
560
|
+
const sourceCode = context.getSourceCode();
|
|
561
|
+
return {
|
|
562
|
+
FunctionDeclaration: (node) => {
|
|
563
|
+
console.log(node);
|
|
564
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
565
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
566
|
+
if (!preSpace || !preSpace.length) {
|
|
567
|
+
context.report({
|
|
568
|
+
node,
|
|
569
|
+
loc: {
|
|
570
|
+
start: node.loc.start,
|
|
571
|
+
end: {
|
|
572
|
+
line: node.loc.start.line,
|
|
573
|
+
column: node.loc.start.column + 1
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
577
|
+
*fix(fixer) {
|
|
578
|
+
yield fixer.insertTextBefore(node, " ");
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
},
|
|
583
|
+
FunctionExpression: (node) => {
|
|
584
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
585
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
586
|
+
if (!preSpace || !preSpace.length) {
|
|
587
|
+
context.report({
|
|
588
|
+
node,
|
|
589
|
+
loc: {
|
|
590
|
+
start: node.loc.start,
|
|
591
|
+
end: {
|
|
592
|
+
line: node.loc.start.line,
|
|
593
|
+
column: node.loc.start.column + 1
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
597
|
+
*fix(fixer) {
|
|
598
|
+
yield fixer.insertTextBefore(node, " ");
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
ArrowFunctionExpression: (node) => {
|
|
604
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
605
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
606
|
+
if (!preSpace || !preSpace.length) {
|
|
607
|
+
context.report({
|
|
608
|
+
node,
|
|
609
|
+
loc: {
|
|
610
|
+
start: node.loc.start,
|
|
611
|
+
end: {
|
|
612
|
+
line: node.loc.start.line,
|
|
613
|
+
column: node.loc.start.column + 1
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
617
|
+
*fix(fixer) {
|
|
618
|
+
yield fixer.insertTextBefore(node, " ");
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
TSDeclareFunction: (node) => {
|
|
624
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
625
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
626
|
+
if (!preSpace || !preSpace.length) {
|
|
627
|
+
context.report({
|
|
628
|
+
node,
|
|
629
|
+
loc: {
|
|
630
|
+
start: node.loc.start,
|
|
631
|
+
end: {
|
|
632
|
+
line: node.loc.start.line,
|
|
633
|
+
column: node.loc.start.column + 1
|
|
634
|
+
}
|
|
635
|
+
},
|
|
636
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
637
|
+
*fix(fixer) {
|
|
638
|
+
yield fixer.insertTextBefore(node, " ");
|
|
639
|
+
}
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
TSTypeReference: (node) => {
|
|
644
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
645
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
646
|
+
if (!preSpace || !preSpace.length) {
|
|
647
|
+
context.report({
|
|
648
|
+
node,
|
|
649
|
+
loc: {
|
|
650
|
+
start: node.loc.start,
|
|
651
|
+
end: {
|
|
652
|
+
line: node.loc.start.line,
|
|
653
|
+
column: node.loc.start.column + 1
|
|
654
|
+
}
|
|
655
|
+
},
|
|
656
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
657
|
+
*fix(fixer) {
|
|
658
|
+
yield fixer.insertTextBefore(node, " ");
|
|
659
|
+
}
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
});
|
|
666
|
+
|
|
542
667
|
const index = {
|
|
543
668
|
rules: {
|
|
544
669
|
"import-dedupe": importDedupe,
|
|
@@ -546,7 +671,8 @@ const index = {
|
|
|
546
671
|
"space-between-generic-and-paren": spaceBetweenGenericAndParen,
|
|
547
672
|
"space-in-empty-block": spaceInEmptyBlock,
|
|
548
673
|
"semi-spacing": semiSpacing,
|
|
549
|
-
"no-inline-type-import": noInlineTypeImport
|
|
674
|
+
"no-inline-type-import": noInlineTypeImport,
|
|
675
|
+
"space-before-function-paren": spaceBeforeFunctionParen
|
|
550
676
|
}
|
|
551
677
|
};
|
|
552
678
|
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare const _default: {
|
|
|
8
8
|
"space-in-empty-block": _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<"noSpaceInEmptyBlock", [], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
|
|
9
9
|
"semi-spacing": _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<"noSpaceBeforeSemi", [], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
|
|
10
10
|
"no-inline-type-import": _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<"noInlineTypeImport", [], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
|
|
11
|
+
"space-before-function-paren": _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<"spaceBeforeFunctionParenMismatch", [], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
|
|
11
12
|
};
|
|
12
13
|
};
|
|
13
14
|
|
package/dist/index.mjs
CHANGED
|
@@ -2,16 +2,16 @@ import { ESLintUtils } from '@typescript-eslint/utils';
|
|
|
2
2
|
|
|
3
3
|
const createEslintRule = ESLintUtils.RuleCreator((ruleName) => ruleName);
|
|
4
4
|
|
|
5
|
-
const RULE_NAME$
|
|
5
|
+
const RULE_NAME$6 = "generic-spacing";
|
|
6
6
|
const genericSpacing = createEslintRule({
|
|
7
|
-
name: RULE_NAME$
|
|
7
|
+
name: RULE_NAME$6,
|
|
8
8
|
meta: {
|
|
9
|
-
type: "
|
|
9
|
+
type: "layout",
|
|
10
10
|
docs: {
|
|
11
11
|
description: "Spaces around generic type parameters",
|
|
12
12
|
recommended: "error"
|
|
13
13
|
},
|
|
14
|
-
fixable: "
|
|
14
|
+
fixable: "whitespace",
|
|
15
15
|
schema: [],
|
|
16
16
|
messages: {
|
|
17
17
|
genericSpacingMismatch: "Generic spaces mismatch"
|
|
@@ -20,6 +20,7 @@ const genericSpacing = createEslintRule({
|
|
|
20
20
|
defaultOptions: [],
|
|
21
21
|
create: (context) => {
|
|
22
22
|
const sourceCode = context.getSourceCode();
|
|
23
|
+
const text = sourceCode.getText();
|
|
23
24
|
return {
|
|
24
25
|
TSTypeParameterDeclaration: (node) => {
|
|
25
26
|
const params = node.params;
|
|
@@ -217,7 +218,6 @@ const genericSpacing = createEslintRule({
|
|
|
217
218
|
if (!node.extends || !node.typeParameters) {
|
|
218
219
|
return;
|
|
219
220
|
}
|
|
220
|
-
const text = sourceCode.getText();
|
|
221
221
|
const { typeParameters } = node;
|
|
222
222
|
const extendsKeywordStart = typeParameters.range[1];
|
|
223
223
|
const extendsKeywordEnd = node.extends[0].range[0];
|
|
@@ -246,9 +246,9 @@ const genericSpacing = createEslintRule({
|
|
|
246
246
|
}
|
|
247
247
|
});
|
|
248
248
|
|
|
249
|
-
const RULE_NAME$
|
|
249
|
+
const RULE_NAME$5 = "import-dedupe";
|
|
250
250
|
const importDedupe = createEslintRule({
|
|
251
|
-
name: RULE_NAME$
|
|
251
|
+
name: RULE_NAME$5,
|
|
252
252
|
meta: {
|
|
253
253
|
type: "problem",
|
|
254
254
|
docs: {
|
|
@@ -296,16 +296,16 @@ const importDedupe = createEslintRule({
|
|
|
296
296
|
}
|
|
297
297
|
});
|
|
298
298
|
|
|
299
|
-
const RULE_NAME$
|
|
299
|
+
const RULE_NAME$4 = "space-between-generic-and-paren";
|
|
300
300
|
const spaceBetweenGenericAndParen = createEslintRule({
|
|
301
|
-
name: RULE_NAME$
|
|
301
|
+
name: RULE_NAME$4,
|
|
302
302
|
meta: {
|
|
303
|
-
type: "
|
|
303
|
+
type: "layout",
|
|
304
304
|
docs: {
|
|
305
305
|
description: "Spaces between generic type parameters and paren",
|
|
306
306
|
recommended: "error"
|
|
307
307
|
},
|
|
308
|
-
fixable: "
|
|
308
|
+
fixable: "whitespace",
|
|
309
309
|
schema: [],
|
|
310
310
|
messages: {
|
|
311
311
|
noSpaceBetweenGenericAndParen: "Expected no space between generic type parameters and paren"
|
|
@@ -372,16 +372,16 @@ const spaceBetweenGenericAndParen = createEslintRule({
|
|
|
372
372
|
}
|
|
373
373
|
});
|
|
374
374
|
|
|
375
|
-
const RULE_NAME$
|
|
375
|
+
const RULE_NAME$3 = "space-in-empty-block";
|
|
376
376
|
const spaceInEmptyBlock = createEslintRule({
|
|
377
|
-
name: RULE_NAME$
|
|
377
|
+
name: RULE_NAME$3,
|
|
378
378
|
meta: {
|
|
379
|
-
type: "
|
|
379
|
+
type: "layout",
|
|
380
380
|
docs: {
|
|
381
381
|
description: "Disallow spaces in empty block",
|
|
382
382
|
recommended: "error"
|
|
383
383
|
},
|
|
384
|
-
fixable: "
|
|
384
|
+
fixable: "whitespace",
|
|
385
385
|
schema: [],
|
|
386
386
|
messages: {
|
|
387
387
|
noSpaceInEmptyBlock: "Expected no space in empty block"
|
|
@@ -392,7 +392,7 @@ const spaceInEmptyBlock = createEslintRule({
|
|
|
392
392
|
const sourceCode = context.getSourceCode();
|
|
393
393
|
return {
|
|
394
394
|
BlockStatement: (node) => {
|
|
395
|
-
if (node.body.length) {
|
|
395
|
+
if (node.body.length || sourceCode.getCommentsInside(node).length) {
|
|
396
396
|
return;
|
|
397
397
|
}
|
|
398
398
|
const spaceStartRange = node.range[1] - 2;
|
|
@@ -439,16 +439,16 @@ const spaceInEmptyBlock = createEslintRule({
|
|
|
439
439
|
}
|
|
440
440
|
});
|
|
441
441
|
|
|
442
|
-
const RULE_NAME$
|
|
442
|
+
const RULE_NAME$2 = "semi-spacing";
|
|
443
443
|
const semiSpacing = createEslintRule({
|
|
444
|
-
name: RULE_NAME$
|
|
444
|
+
name: RULE_NAME$2,
|
|
445
445
|
meta: {
|
|
446
|
-
type: "
|
|
446
|
+
type: "layout",
|
|
447
447
|
docs: {
|
|
448
448
|
description: "Semicolon spacing",
|
|
449
449
|
recommended: "error"
|
|
450
450
|
},
|
|
451
|
-
fixable: "
|
|
451
|
+
fixable: "whitespace",
|
|
452
452
|
schema: [],
|
|
453
453
|
messages: {
|
|
454
454
|
noSpaceBeforeSemi: "Expected no space before semicolon"
|
|
@@ -488,11 +488,11 @@ const semiSpacing = createEslintRule({
|
|
|
488
488
|
}
|
|
489
489
|
});
|
|
490
490
|
|
|
491
|
-
const RULE_NAME = "no-inline-type-import";
|
|
491
|
+
const RULE_NAME$1 = "no-inline-type-import";
|
|
492
492
|
const noInlineTypeImport = createEslintRule({
|
|
493
|
-
name: RULE_NAME,
|
|
493
|
+
name: RULE_NAME$1,
|
|
494
494
|
meta: {
|
|
495
|
-
type: "
|
|
495
|
+
type: "layout",
|
|
496
496
|
docs: {
|
|
497
497
|
description: "Disallow inline type import",
|
|
498
498
|
recommended: "error"
|
|
@@ -537,6 +537,131 @@ import { ${valueSpecifiersText} } from "${node.source.value}";`);
|
|
|
537
537
|
}
|
|
538
538
|
});
|
|
539
539
|
|
|
540
|
+
const RULE_NAME = "space-before-function-paren";
|
|
541
|
+
const spaceBeforeFunctionParen = createEslintRule({
|
|
542
|
+
name: RULE_NAME,
|
|
543
|
+
meta: {
|
|
544
|
+
type: "layout",
|
|
545
|
+
docs: {
|
|
546
|
+
description: "Enforce consistent spacing before function parenthesis",
|
|
547
|
+
recommended: "error",
|
|
548
|
+
extendsBaseRule: true
|
|
549
|
+
},
|
|
550
|
+
fixable: "whitespace",
|
|
551
|
+
schema: [],
|
|
552
|
+
messages: {
|
|
553
|
+
spaceBeforeFunctionParenMismatch: "Space before function paren mismatch"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
defaultOptions: [],
|
|
557
|
+
create: (context) => {
|
|
558
|
+
const sourceCode = context.getSourceCode();
|
|
559
|
+
return {
|
|
560
|
+
FunctionDeclaration: (node) => {
|
|
561
|
+
console.log(node);
|
|
562
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
563
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
564
|
+
if (!preSpace || !preSpace.length) {
|
|
565
|
+
context.report({
|
|
566
|
+
node,
|
|
567
|
+
loc: {
|
|
568
|
+
start: node.loc.start,
|
|
569
|
+
end: {
|
|
570
|
+
line: node.loc.start.line,
|
|
571
|
+
column: node.loc.start.column + 1
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
575
|
+
*fix(fixer) {
|
|
576
|
+
yield fixer.insertTextBefore(node, " ");
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
FunctionExpression: (node) => {
|
|
582
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
583
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
584
|
+
if (!preSpace || !preSpace.length) {
|
|
585
|
+
context.report({
|
|
586
|
+
node,
|
|
587
|
+
loc: {
|
|
588
|
+
start: node.loc.start,
|
|
589
|
+
end: {
|
|
590
|
+
line: node.loc.start.line,
|
|
591
|
+
column: node.loc.start.column + 1
|
|
592
|
+
}
|
|
593
|
+
},
|
|
594
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
595
|
+
*fix(fixer) {
|
|
596
|
+
yield fixer.insertTextBefore(node, " ");
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
ArrowFunctionExpression: (node) => {
|
|
602
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
603
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
604
|
+
if (!preSpace || !preSpace.length) {
|
|
605
|
+
context.report({
|
|
606
|
+
node,
|
|
607
|
+
loc: {
|
|
608
|
+
start: node.loc.start,
|
|
609
|
+
end: {
|
|
610
|
+
line: node.loc.start.line,
|
|
611
|
+
column: node.loc.start.column + 1
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
615
|
+
*fix(fixer) {
|
|
616
|
+
yield fixer.insertTextBefore(node, " ");
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
TSDeclareFunction: (node) => {
|
|
622
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
623
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
624
|
+
if (!preSpace || !preSpace.length) {
|
|
625
|
+
context.report({
|
|
626
|
+
node,
|
|
627
|
+
loc: {
|
|
628
|
+
start: node.loc.start,
|
|
629
|
+
end: {
|
|
630
|
+
line: node.loc.start.line,
|
|
631
|
+
column: node.loc.start.column + 1
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
635
|
+
*fix(fixer) {
|
|
636
|
+
yield fixer.insertTextBefore(node, " ");
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
TSTypeReference: (node) => {
|
|
642
|
+
const pre = sourceCode.text.slice(0, node.range[0]);
|
|
643
|
+
const preSpace = pre.match(/(\s+)$/)?.[0];
|
|
644
|
+
if (!preSpace || !preSpace.length) {
|
|
645
|
+
context.report({
|
|
646
|
+
node,
|
|
647
|
+
loc: {
|
|
648
|
+
start: node.loc.start,
|
|
649
|
+
end: {
|
|
650
|
+
line: node.loc.start.line,
|
|
651
|
+
column: node.loc.start.column + 1
|
|
652
|
+
}
|
|
653
|
+
},
|
|
654
|
+
messageId: "spaceBeforeFunctionParenMismatch",
|
|
655
|
+
*fix(fixer) {
|
|
656
|
+
yield fixer.insertTextBefore(node, " ");
|
|
657
|
+
}
|
|
658
|
+
});
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
};
|
|
662
|
+
}
|
|
663
|
+
});
|
|
664
|
+
|
|
540
665
|
const index = {
|
|
541
666
|
rules: {
|
|
542
667
|
"import-dedupe": importDedupe,
|
|
@@ -544,7 +669,8 @@ const index = {
|
|
|
544
669
|
"space-between-generic-and-paren": spaceBetweenGenericAndParen,
|
|
545
670
|
"space-in-empty-block": spaceInEmptyBlock,
|
|
546
671
|
"semi-spacing": semiSpacing,
|
|
547
|
-
"no-inline-type-import": noInlineTypeImport
|
|
672
|
+
"no-inline-type-import": noInlineTypeImport,
|
|
673
|
+
"space-before-function-paren": spaceBeforeFunctionParen
|
|
548
674
|
}
|
|
549
675
|
};
|
|
550
676
|
|