booleanStyle.js.flow 839 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const schema = [
  2. {
  3. enum: ['bool', 'boolean'],
  4. type: 'string',
  5. },
  6. ];
  7. const create = (context) => {
  8. const longForm = (context.options[0] || 'boolean') === 'boolean';
  9. return {
  10. BooleanTypeAnnotation(node) {
  11. const diff = node.range[1] - node.range[0];
  12. if (longForm && diff === 4) {
  13. context.report({
  14. fix(fixer) {
  15. return fixer.replaceText(node, 'boolean');
  16. },
  17. message: 'Use "boolean", not "bool"',
  18. node,
  19. });
  20. }
  21. if (!longForm && diff !== 4) {
  22. context.report({
  23. fix(fixer) {
  24. return fixer.replaceText(node, 'bool');
  25. },
  26. message: 'Use "bool", not "boolean"',
  27. node,
  28. });
  29. }
  30. },
  31. };
  32. };
  33. export default {
  34. create,
  35. meta: {
  36. fixable: 'code',
  37. },
  38. schema,
  39. };