react-scripts
Version:
Configuration and scripts for Create React App.
53 lines (41 loc) • 2.37 kB
JavaScript
;
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'];