Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

58 строки
2.1 KiB

  1. /**
  2. * @fileoverview Utility functions for React and Flow version configuration
  3. * @author Yannick Croissant
  4. */
  5. 'use strict';
  6. const log = require('./log');
  7. let warnedForMissingVersion = false;
  8. function getReactVersionFromContext(context) {
  9. let confVer = '999.999.999';
  10. // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
  11. if (context.settings.react && context.settings.react.version) {
  12. confVer = context.settings.react.version;
  13. } else if (!warnedForMissingVersion) {
  14. log('Warning: React version not specified in eslint-plugin-react settings. ' +
  15. 'See https://github.com/yannickcr/eslint-plugin-react#configuration.');
  16. warnedForMissingVersion = true;
  17. }
  18. confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
  19. return confVer.split('.').map(part => Number(part));
  20. }
  21. function getFlowVersionFromContext(context) {
  22. let confVer = '999.999.999';
  23. // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
  24. if (context.settings.react && context.settings.react.flowVersion) {
  25. confVer = context.settings.react.flowVersion;
  26. } else {
  27. throw 'Could not retrieve flowVersion from settings';
  28. }
  29. confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
  30. return confVer.split('.').map(part => Number(part));
  31. }
  32. function test(context, methodVer, confVer) {
  33. methodVer = String(methodVer || '').split('.').map(part => Number(part));
  34. const higherMajor = methodVer[0] < confVer[0];
  35. const higherMinor = methodVer[0] === confVer[0] && methodVer[1] < confVer[1];
  36. const higherOrEqualPatch = methodVer[0] === confVer[0] && methodVer[1] === confVer[1] && methodVer[2] <= confVer[2];
  37. return higherMajor || higherMinor || higherOrEqualPatch;
  38. }
  39. function testReactVersion(context, methodVer) {
  40. return test(context, methodVer, getReactVersionFromContext(context));
  41. }
  42. function testFlowVersion(context, methodVer) {
  43. return test(context, methodVer, getFlowVersionFromContext(context));
  44. }
  45. module.exports = {
  46. testReactVersion,
  47. testFlowVersion
  48. };