@so1ve/eslint-plugin 0.45.3 → 0.46.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
@@ -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
  }
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
  }
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.0",
4
4
  "author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
5
5
  "contributors": [
6
6
  {