1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _lodash = require('lodash');
|
8 |
|
9 | var _lodash2 = _interopRequireDefault(_lodash);
|
10 |
|
11 | var _utilities = require('./../utilities');
|
12 |
|
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14 |
|
15 | exports.default = (0, _utilities.iterateFunctionNodes)(function (context) {
|
16 | var checkThisFile = !_lodash2.default.get(context, 'settings.flowtype.onlyFilesWithFlowAnnotation') || (0, _utilities.isFlowFile)(context);
|
17 |
|
18 | if (!checkThisFile) {
|
19 | return function () {};
|
20 | }
|
21 |
|
22 | var skipArrows = _lodash2.default.get(context, 'options[0].excludeArrowFunctions');
|
23 |
|
24 | return function (functionNode) {
|
25 | _lodash2.default.forEach(functionNode.params, function (identifierNode) {
|
26 | var typeAnnotation = _lodash2.default.get(identifierNode, 'typeAnnotation') || _lodash2.default.get(identifierNode, 'left.typeAnnotation');
|
27 |
|
28 | var isArrow = functionNode.type === 'ArrowFunctionExpression';
|
29 | var isArrowFunctionExpression = functionNode.expression;
|
30 |
|
31 | if (skipArrows === 'expressionsOnly' && isArrowFunctionExpression || skipArrows === true && isArrow) {
|
32 | return;
|
33 | }
|
34 |
|
35 | if (!typeAnnotation) {
|
36 | context.report({
|
37 | data: {
|
38 | name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(identifierNode, context))
|
39 | },
|
40 | message: 'Missing {{name}}parameter type annotation.',
|
41 | node: identifierNode
|
42 | });
|
43 | }
|
44 | });
|
45 | };
|
46 | });
|
47 | module.exports = exports['default']; |
\ | No newline at end of file |