@so1ve/eslint-plugin 0.45.3 → 0.46.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 CHANGED
@@ -514,6 +514,44 @@ const noSpaceBeforeParen = createEslintRule({
514
514
  });
515
515
  }
516
516
  }
517
+ },
518
+ NewExpression(node) {
519
+ const calleeEnd = node.callee.range[1];
520
+ const textAfterCallee = text.slice(calleeEnd);
521
+ const parenStart = calleeEnd + textAfterCallee.indexOf("(");
522
+ const textBetweenCalleeAndParenRange = [calleeEnd, parenStart];
523
+ const textBetweenCalleeAndParen = text.slice(...textBetweenCalleeAndParenRange);
524
+ const hasGenerics = /^\s*</.test(textBetweenCalleeAndParen);
525
+ if (!hasGenerics && textBetweenCalleeAndParen.length > 0) {
526
+ context.report({
527
+ node,
528
+ messageId: "noSpaceBeforeParen",
529
+ *fix(fixer) {
530
+ yield fixer.removeRange(textBetweenCalleeAndParenRange);
531
+ }
532
+ });
533
+ } else if (hasGenerics) {
534
+ const preSpaces = /^(\s*)/.exec(textBetweenCalleeAndParen)[1];
535
+ const postSpaces = /(\s*)$/.exec(textBetweenCalleeAndParen)[1];
536
+ if (preSpaces.length > 0) {
537
+ context.report({
538
+ node,
539
+ messageId: "noSpaceBeforeParen",
540
+ *fix(fixer) {
541
+ yield fixer.removeRange([calleeEnd, calleeEnd + preSpaces.length]);
542
+ }
543
+ });
544
+ }
545
+ if (postSpaces.length > 0) {
546
+ context.report({
547
+ node,
548
+ messageId: "noSpaceBeforeParen",
549
+ *fix(fixer) {
550
+ yield fixer.removeRange([parenStart - postSpaces.length, parenStart]);
551
+ }
552
+ });
553
+ }
554
+ }
517
555
  }
518
556
  };
519
557
  }
@@ -715,7 +753,7 @@ const semiSpacing = createEslintRule({
715
753
  TSTypeAliasDeclaration(node) {
716
754
  const leftToken = node.typeAnnotation;
717
755
  const rightToken = sourceCode.getTokenAfter(node.typeAnnotation);
718
- if (rightToken.type !== utils.AST_TOKEN_TYPES.Punctuator || rightToken.value !== ";") {
756
+ if (!rightToken || rightToken.type !== utils.AST_TOKEN_TYPES.Punctuator || rightToken.value !== ";") {
719
757
  return;
720
758
  }
721
759
  const hasSpacing = sourceCode.isSpaceBetween(leftToken, rightToken);
package/dist/index.mjs CHANGED
@@ -499,6 +499,44 @@ const noSpaceBeforeParen = createEslintRule({
499
499
  });
500
500
  }
501
501
  }
502
+ },
503
+ NewExpression(node) {
504
+ const calleeEnd = node.callee.range[1];
505
+ const textAfterCallee = text.slice(calleeEnd);
506
+ const parenStart = calleeEnd + textAfterCallee.indexOf("(");
507
+ const textBetweenCalleeAndParenRange = [calleeEnd, parenStart];
508
+ const textBetweenCalleeAndParen = text.slice(...textBetweenCalleeAndParenRange);
509
+ const hasGenerics = /^\s*</.test(textBetweenCalleeAndParen);
510
+ if (!hasGenerics && textBetweenCalleeAndParen.length > 0) {
511
+ context.report({
512
+ node,
513
+ messageId: "noSpaceBeforeParen",
514
+ *fix(fixer) {
515
+ yield fixer.removeRange(textBetweenCalleeAndParenRange);
516
+ }
517
+ });
518
+ } else if (hasGenerics) {
519
+ const preSpaces = /^(\s*)/.exec(textBetweenCalleeAndParen)[1];
520
+ const postSpaces = /(\s*)$/.exec(textBetweenCalleeAndParen)[1];
521
+ if (preSpaces.length > 0) {
522
+ context.report({
523
+ node,
524
+ messageId: "noSpaceBeforeParen",
525
+ *fix(fixer) {
526
+ yield fixer.removeRange([calleeEnd, calleeEnd + preSpaces.length]);
527
+ }
528
+ });
529
+ }
530
+ if (postSpaces.length > 0) {
531
+ context.report({
532
+ node,
533
+ messageId: "noSpaceBeforeParen",
534
+ *fix(fixer) {
535
+ yield fixer.removeRange([parenStart - postSpaces.length, parenStart]);
536
+ }
537
+ });
538
+ }
539
+ }
502
540
  }
503
541
  };
504
542
  }
@@ -700,7 +738,7 @@ const semiSpacing = createEslintRule({
700
738
  TSTypeAliasDeclaration(node) {
701
739
  const leftToken = node.typeAnnotation;
702
740
  const rightToken = sourceCode.getTokenAfter(node.typeAnnotation);
703
- if (rightToken.type !== AST_TOKEN_TYPES.Punctuator || rightToken.value !== ";") {
741
+ if (!rightToken || rightToken.type !== AST_TOKEN_TYPES.Punctuator || rightToken.value !== ";") {
704
742
  return;
705
743
  }
706
744
  const hasSpacing = sourceCode.isSpaceBetween(leftToken, rightToken);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@so1ve/eslint-plugin",
3
- "version": "0.45.3",
3
+ "version": "0.46.1",
4
4
  "author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
5
5
  "contributors": [
6
6
  {