noUnusedExpressions.js.flow 688 B

1234567891011121314151617181920212223242526272829303132
  1. // A wrapper around ESLint's core rule no-unused-expressions, additionally ignores type cast
  2. // expressions.
  3. import {
  4. getBuiltinRule,
  5. } from '../utilities/getBuiltinRule';
  6. const noUnusedExpressionsRule = getBuiltinRule('no-unused-expressions');
  7. const { meta } = noUnusedExpressionsRule;
  8. const create = (context) => {
  9. const coreChecks = noUnusedExpressionsRule.create(context);
  10. return {
  11. ExpressionStatement(node) {
  12. if (
  13. node.expression.type === 'TypeCastExpression'
  14. || node.expression.type === 'OptionalCallExpression'
  15. ) {
  16. return;
  17. }
  18. coreChecks.ExpressionStatement(node);
  19. },
  20. };
  21. };
  22. export default {
  23. create,
  24. meta,
  25. };