UNPKG

react-scripts

Version:
53 lines (41 loc) 2.37 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _utilities = require('./../utilities'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = (0, _utilities.iterateFunctionNodes)(function (context) { var always = (context.options[0] || 'always') === 'always'; var sourceCode = context.getSourceCode(); return function (functionNode) { _lodash2.default.forEach(functionNode.params, function (identifierNode) { var parameterName = (0, _utilities.getParameterName)(identifierNode, context); var typeAnnotation = _lodash2.default.get(identifierNode, 'typeAnnotation') || _lodash2.default.get(identifierNode, 'left.typeAnnotation'); if (typeAnnotation) { var token = sourceCode.getFirstToken(typeAnnotation, 1); var spaceAfter = token.start - typeAnnotation.start - 1; if (always && spaceAfter > 1) { context.report(identifierNode, 'There must be 1 space after "' + parameterName + '" parameter type annotation colon.'); } else if (always && spaceAfter === 0) { context.report(identifierNode, 'There must be a space after "' + parameterName + '" parameter type annotation colon.'); } else if (!always && spaceAfter > 0) { context.report(identifierNode, 'There must be no space after "' + parameterName + '" parameter type annotation colon.'); } } }); if (functionNode.returnType) { var token = sourceCode.getFirstToken(functionNode.returnType, 1); var spaceAfter = token.start - functionNode.returnType.start - 1; if (always && spaceAfter > 1) { context.report(functionNode, 'There must be 1 space after return type colon.'); } else if (always && spaceAfter === 0) { context.report(functionNode, 'There must be a space after return type colon.'); } else if (!always && spaceAfter > 0) { context.report(functionNode, 'There must be no space after return type colon.'); } } }; }); module.exports = exports['default'];