@so1ve/eslint-plugin 0.37.1 → 0.38.0

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 CHANGED
@@ -4,9 +4,9 @@ const utils = require('@typescript-eslint/utils');
4
4
 
5
5
  const createEslintRule = utils.ESLintUtils.RuleCreator((ruleName) => ruleName);
6
6
 
7
- const RULE_NAME$6 = "generic-spacing";
7
+ const RULE_NAME$5 = "generic-spacing";
8
8
  const genericSpacing = createEslintRule({
9
- name: RULE_NAME$6,
9
+ name: RULE_NAME$5,
10
10
  meta: {
11
11
  type: "layout",
12
12
  docs: {
@@ -33,7 +33,27 @@ const genericSpacing = createEslintRule({
33
33
  const preComma = pre.match(/(,)\s+$/)?.[0];
34
34
  const post = sourceCode.text.slice(param.range[1]);
35
35
  const postSpace = post.match(/^(\s*)/)?.[0];
36
- if (preSpace && preSpace.length && !preComma) {
36
+ const expectedIndent = node.parent.loc.start.column + 2;
37
+ if (param.loc.start.column !== expectedIndent && param.loc.start.line !== node.parent.loc.start.line) {
38
+ context.report({
39
+ node,
40
+ loc: {
41
+ start: {
42
+ line: param.loc.start.line,
43
+ column: 0
44
+ },
45
+ end: {
46
+ line: param.loc.start.line,
47
+ column: param.loc.start.column - 1
48
+ }
49
+ },
50
+ messageId: "genericSpacingMismatch",
51
+ *fix(fixer) {
52
+ yield fixer.replaceTextRange([param.range[0] + 2 - preSpace.length, param.range[0]], " ".repeat(node.parent.loc.start.column + 2));
53
+ }
54
+ });
55
+ }
56
+ if (preSpace && preSpace.length && !preComma && param.loc.start.line === node.loc.start.line) {
37
57
  context.report({
38
58
  node,
39
59
  loc: {
@@ -48,11 +68,11 @@ const genericSpacing = createEslintRule({
48
68
  },
49
69
  messageId: "genericSpacingMismatch",
50
70
  *fix(fixer) {
51
- yield fixer.replaceTextRange([param.range[0] - preSpace.length, param.range[0]], "");
71
+ yield fixer.removeRange([param.range[0] - preSpace.length, param.range[0]]);
52
72
  }
53
73
  });
54
74
  }
55
- if (postSpace && postSpace.length) {
75
+ if (postSpace && postSpace.length && param.loc.end.line === node.loc.end.line) {
56
76
  context.report({
57
77
  loc: {
58
78
  start: {
@@ -82,7 +102,7 @@ const genericSpacing = createEslintRule({
82
102
  node,
83
103
  messageId: "genericSpacingMismatch",
84
104
  *fix(fixer) {
85
- yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], "");
105
+ yield fixer.removeRange([node.range[0] - preSpace.length, node.range[0]]);
86
106
  }
87
107
  });
88
108
  }
@@ -91,7 +111,7 @@ const genericSpacing = createEslintRule({
91
111
  node,
92
112
  messageId: "genericSpacingMismatch",
93
113
  *fix(fixer) {
94
- yield fixer.replaceTextRange([node.range[1], node.range[1] + postBracket.length - 1], "");
114
+ yield fixer.removeRange([node.range[1], node.range[1] + postBracket.length - 1]);
95
115
  }
96
116
  });
97
117
  }
@@ -248,9 +268,9 @@ const genericSpacing = createEslintRule({
248
268
  }
249
269
  });
250
270
 
251
- const RULE_NAME$5 = "import-dedupe";
271
+ const RULE_NAME$4 = "import-dedupe";
252
272
  const importDedupe = createEslintRule({
253
- name: RULE_NAME$5,
273
+ name: RULE_NAME$4,
254
274
  meta: {
255
275
  type: "problem",
256
276
  docs: {
@@ -298,9 +318,9 @@ const importDedupe = createEslintRule({
298
318
  }
299
319
  });
300
320
 
301
- const RULE_NAME$4 = "space-between-generic-and-paren";
321
+ const RULE_NAME$3 = "space-between-generic-and-paren";
302
322
  const spaceBetweenGenericAndParen = createEslintRule({
303
- name: RULE_NAME$4,
323
+ name: RULE_NAME$3,
304
324
  meta: {
305
325
  type: "layout",
306
326
  docs: {
@@ -374,9 +394,9 @@ const spaceBetweenGenericAndParen = createEslintRule({
374
394
  }
375
395
  });
376
396
 
377
- const RULE_NAME$3 = "space-in-empty-block";
397
+ const RULE_NAME$2 = "space-in-empty-block";
378
398
  const spaceInEmptyBlock = createEslintRule({
379
- name: RULE_NAME$3,
399
+ name: RULE_NAME$2,
380
400
  meta: {
381
401
  type: "layout",
382
402
  docs: {
@@ -441,9 +461,9 @@ const spaceInEmptyBlock = createEslintRule({
441
461
  }
442
462
  });
443
463
 
444
- const RULE_NAME$2 = "semi-spacing";
464
+ const RULE_NAME$1 = "semi-spacing";
445
465
  const semiSpacing = createEslintRule({
446
- name: RULE_NAME$2,
466
+ name: RULE_NAME$1,
447
467
  meta: {
448
468
  type: "layout",
449
469
  docs: {
@@ -490,9 +510,9 @@ const semiSpacing = createEslintRule({
490
510
  }
491
511
  });
492
512
 
493
- const RULE_NAME$1 = "no-inline-type-import";
513
+ const RULE_NAME = "no-inline-type-import";
494
514
  const noInlineTypeImport = createEslintRule({
495
- name: RULE_NAME$1,
515
+ name: RULE_NAME,
496
516
  meta: {
497
517
  type: "layout",
498
518
  docs: {
@@ -539,131 +559,6 @@ import { ${valueSpecifiersText} } from "${node.source.value}";`);
539
559
  }
540
560
  });
541
561
 
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
-
667
562
  const index = {
668
563
  rules: {
669
564
  "import-dedupe": importDedupe,
@@ -671,8 +566,7 @@ const index = {
671
566
  "space-between-generic-and-paren": spaceBetweenGenericAndParen,
672
567
  "space-in-empty-block": spaceInEmptyBlock,
673
568
  "semi-spacing": semiSpacing,
674
- "no-inline-type-import": noInlineTypeImport,
675
- "space-before-function-paren": spaceBeforeFunctionParen
569
+ "no-inline-type-import": noInlineTypeImport
676
570
  }
677
571
  };
678
572
 
package/dist/index.d.ts CHANGED
@@ -8,7 +8,6 @@ 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>;
12
11
  };
13
12
  };
14
13
 
package/dist/index.mjs CHANGED
@@ -2,9 +2,9 @@ import { ESLintUtils } from '@typescript-eslint/utils';
2
2
 
3
3
  const createEslintRule = ESLintUtils.RuleCreator((ruleName) => ruleName);
4
4
 
5
- const RULE_NAME$6 = "generic-spacing";
5
+ const RULE_NAME$5 = "generic-spacing";
6
6
  const genericSpacing = createEslintRule({
7
- name: RULE_NAME$6,
7
+ name: RULE_NAME$5,
8
8
  meta: {
9
9
  type: "layout",
10
10
  docs: {
@@ -31,7 +31,27 @@ const genericSpacing = createEslintRule({
31
31
  const preComma = pre.match(/(,)\s+$/)?.[0];
32
32
  const post = sourceCode.text.slice(param.range[1]);
33
33
  const postSpace = post.match(/^(\s*)/)?.[0];
34
- if (preSpace && preSpace.length && !preComma) {
34
+ const expectedIndent = node.parent.loc.start.column + 2;
35
+ if (param.loc.start.column !== expectedIndent && param.loc.start.line !== node.parent.loc.start.line) {
36
+ context.report({
37
+ node,
38
+ loc: {
39
+ start: {
40
+ line: param.loc.start.line,
41
+ column: 0
42
+ },
43
+ end: {
44
+ line: param.loc.start.line,
45
+ column: param.loc.start.column - 1
46
+ }
47
+ },
48
+ messageId: "genericSpacingMismatch",
49
+ *fix(fixer) {
50
+ yield fixer.replaceTextRange([param.range[0] + 2 - preSpace.length, param.range[0]], " ".repeat(node.parent.loc.start.column + 2));
51
+ }
52
+ });
53
+ }
54
+ if (preSpace && preSpace.length && !preComma && param.loc.start.line === node.loc.start.line) {
35
55
  context.report({
36
56
  node,
37
57
  loc: {
@@ -46,11 +66,11 @@ const genericSpacing = createEslintRule({
46
66
  },
47
67
  messageId: "genericSpacingMismatch",
48
68
  *fix(fixer) {
49
- yield fixer.replaceTextRange([param.range[0] - preSpace.length, param.range[0]], "");
69
+ yield fixer.removeRange([param.range[0] - preSpace.length, param.range[0]]);
50
70
  }
51
71
  });
52
72
  }
53
- if (postSpace && postSpace.length) {
73
+ if (postSpace && postSpace.length && param.loc.end.line === node.loc.end.line) {
54
74
  context.report({
55
75
  loc: {
56
76
  start: {
@@ -80,7 +100,7 @@ const genericSpacing = createEslintRule({
80
100
  node,
81
101
  messageId: "genericSpacingMismatch",
82
102
  *fix(fixer) {
83
- yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], "");
103
+ yield fixer.removeRange([node.range[0] - preSpace.length, node.range[0]]);
84
104
  }
85
105
  });
86
106
  }
@@ -89,7 +109,7 @@ const genericSpacing = createEslintRule({
89
109
  node,
90
110
  messageId: "genericSpacingMismatch",
91
111
  *fix(fixer) {
92
- yield fixer.replaceTextRange([node.range[1], node.range[1] + postBracket.length - 1], "");
112
+ yield fixer.removeRange([node.range[1], node.range[1] + postBracket.length - 1]);
93
113
  }
94
114
  });
95
115
  }
@@ -246,9 +266,9 @@ const genericSpacing = createEslintRule({
246
266
  }
247
267
  });
248
268
 
249
- const RULE_NAME$5 = "import-dedupe";
269
+ const RULE_NAME$4 = "import-dedupe";
250
270
  const importDedupe = createEslintRule({
251
- name: RULE_NAME$5,
271
+ name: RULE_NAME$4,
252
272
  meta: {
253
273
  type: "problem",
254
274
  docs: {
@@ -296,9 +316,9 @@ const importDedupe = createEslintRule({
296
316
  }
297
317
  });
298
318
 
299
- const RULE_NAME$4 = "space-between-generic-and-paren";
319
+ const RULE_NAME$3 = "space-between-generic-and-paren";
300
320
  const spaceBetweenGenericAndParen = createEslintRule({
301
- name: RULE_NAME$4,
321
+ name: RULE_NAME$3,
302
322
  meta: {
303
323
  type: "layout",
304
324
  docs: {
@@ -372,9 +392,9 @@ const spaceBetweenGenericAndParen = createEslintRule({
372
392
  }
373
393
  });
374
394
 
375
- const RULE_NAME$3 = "space-in-empty-block";
395
+ const RULE_NAME$2 = "space-in-empty-block";
376
396
  const spaceInEmptyBlock = createEslintRule({
377
- name: RULE_NAME$3,
397
+ name: RULE_NAME$2,
378
398
  meta: {
379
399
  type: "layout",
380
400
  docs: {
@@ -439,9 +459,9 @@ const spaceInEmptyBlock = createEslintRule({
439
459
  }
440
460
  });
441
461
 
442
- const RULE_NAME$2 = "semi-spacing";
462
+ const RULE_NAME$1 = "semi-spacing";
443
463
  const semiSpacing = createEslintRule({
444
- name: RULE_NAME$2,
464
+ name: RULE_NAME$1,
445
465
  meta: {
446
466
  type: "layout",
447
467
  docs: {
@@ -488,9 +508,9 @@ const semiSpacing = createEslintRule({
488
508
  }
489
509
  });
490
510
 
491
- const RULE_NAME$1 = "no-inline-type-import";
511
+ const RULE_NAME = "no-inline-type-import";
492
512
  const noInlineTypeImport = createEslintRule({
493
- name: RULE_NAME$1,
513
+ name: RULE_NAME,
494
514
  meta: {
495
515
  type: "layout",
496
516
  docs: {
@@ -537,131 +557,6 @@ import { ${valueSpecifiersText} } from "${node.source.value}";`);
537
557
  }
538
558
  });
539
559
 
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
-
665
560
  const index = {
666
561
  rules: {
667
562
  "import-dedupe": importDedupe,
@@ -669,8 +564,7 @@ const index = {
669
564
  "space-between-generic-and-paren": spaceBetweenGenericAndParen,
670
565
  "space-in-empty-block": spaceInEmptyBlock,
671
566
  "semi-spacing": semiSpacing,
672
- "no-inline-type-import": noInlineTypeImport,
673
- "space-before-function-paren": spaceBeforeFunctionParen
567
+ "no-inline-type-import": noInlineTypeImport
674
568
  }
675
569
  };
676
570
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@so1ve/eslint-plugin",
3
- "version": "0.37.1",
3
+ "version": "0.38.0",
4
4
  "author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
5
5
  "contributors": [
6
6
  {