1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _utilities = require('../utilities');
|
8 |
|
9 | exports.default = function (context) {
|
10 | var never = (context.options[0] || 'never') === 'never';
|
11 |
|
12 | return {
|
13 | GenericTypeAnnotation: function GenericTypeAnnotation(node) {
|
14 | var types = node.typeParameters;
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | if (!types) {
|
20 | return;
|
21 | }
|
22 |
|
23 | var spaceBefore = types.start - node.id.end;
|
24 |
|
25 | if (never && spaceBefore) {
|
26 | context.report({
|
27 | data: { name: node.id.name },
|
28 | fix: _utilities.spacingFixers.stripSpacesAfter(node.id, spaceBefore),
|
29 | message: 'There must be no space before "{{name}}" generic type annotation bracket',
|
30 | node: node
|
31 | });
|
32 | }
|
33 |
|
34 | if (!never && !spaceBefore) {
|
35 | context.report({
|
36 | data: { name: node.id.name },
|
37 | fix: _utilities.spacingFixers.addSpaceAfter(node.id),
|
38 | message: 'There must be a space before "{{name}}" generic type annotation bracket',
|
39 | node: node
|
40 | });
|
41 | }
|
42 |
|
43 | if (!never && spaceBefore > 1) {
|
44 | context.report({
|
45 | data: { name: node.id.name },
|
46 | fix: _utilities.spacingFixers.stripSpacesAfter(node.id, spaceBefore - 1),
|
47 | message: 'There must be one space before "{{name}}" generic type annotation bracket',
|
48 | node: node
|
49 | });
|
50 | }
|
51 | }
|
52 | };
|
53 | };
|
54 |
|
55 | module.exports = exports['default']; |
\ | No newline at end of file |