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 | return function (functionNode) {
|
17 | _lodash2.default.forEach(functionNode.params, function (identifierNode) {
|
18 | var nodeType = _lodash2.default.get(identifierNode, 'type');
|
19 | var isAssignmentPattern = nodeType === 'AssignmentPattern';
|
20 | var hasTypeAnnotation = Boolean(_lodash2.default.get(identifierNode, 'typeAnnotation'));
|
21 | var leftAnnotated = Boolean(_lodash2.default.get(identifierNode, 'left.typeAnnotation'));
|
22 |
|
23 | if (isAssignmentPattern && hasTypeAnnotation && !leftAnnotated) {
|
24 | context.report({
|
25 | data: {
|
26 | name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(identifierNode, context))
|
27 | },
|
28 | message: '{{name}}parameter type annotation must be placed on left-hand side of assignment.',
|
29 | node: identifierNode
|
30 | });
|
31 | }
|
32 | });
|
33 | };
|
34 | });
|
35 | module.exports = exports['default']; |
\ | No newline at end of file |