1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /**
- * @fileoverview Utility functions for React and Flow version configuration
- * @author Yannick Croissant
- */
- 'use strict';
- function getReactVersionFromContext(context) {
- let confVer = '999.999.999';
- // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
- if (context.settings.react && context.settings.react.version) {
- confVer = context.settings.react.version;
- }
- confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
- return confVer.split('.').map(part => Number(part));
- }
- function getFlowVersionFromContext(context) {
- let confVer = '999.999.999';
- // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
- if (context.settings.react && context.settings.react.flowVersion) {
- confVer = context.settings.react.flowVersion;
- } else {
- throw 'Could not retrieve flowVersion from settings';
- }
- confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
- return confVer.split('.').map(part => Number(part));
- }
- function test(context, methodVer, confVer) {
- methodVer = String(methodVer || '').split('.').map(part => Number(part));
- const higherMajor = methodVer[0] < confVer[0];
- const higherMinor = methodVer[0] === confVer[0] && methodVer[1] < confVer[1];
- const higherOrEqualPatch = methodVer[0] === confVer[0] && methodVer[1] === confVer[1] && methodVer[2] <= confVer[2];
- return higherMajor || higherMinor || higherOrEqualPatch;
- }
- function testReactVersion(context, methodVer) {
- return test(context, methodVer, getReactVersionFromContext(context));
- }
- function testFlowVersion(context, methodVer) {
- return test(context, methodVer, getFlowVersionFromContext(context));
- }
- module.exports = {
- testReactVersion,
- testFlowVersion
- };
|