@atlaskit/eslint-plugin-design-system 10.12.5 → 10.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/rules/no-legacy-icons/helpers.js +3 -3
  3. package/dist/cjs/rules/use-heading/config/index.js +2 -1
  4. package/dist/cjs/rules/use-heading/transformers/native-elements.js +61 -31
  5. package/dist/cjs/rules/use-primitives-text/config/index.js +2 -1
  6. package/dist/cjs/rules/use-primitives-text/transformers/emphasis-elements.js +48 -26
  7. package/dist/cjs/rules/use-primitives-text/transformers/paragraph-elements.js +62 -51
  8. package/dist/cjs/rules/use-primitives-text/transformers/span-elements.js +56 -32
  9. package/dist/cjs/rules/use-primitives-text/transformers/strong-elements.js +48 -26
  10. package/dist/es2019/rules/no-legacy-icons/helpers.js +3 -3
  11. package/dist/es2019/rules/use-heading/config/index.js +2 -1
  12. package/dist/es2019/rules/use-heading/transformers/native-elements.js +60 -29
  13. package/dist/es2019/rules/use-primitives-text/config/index.js +2 -1
  14. package/dist/es2019/rules/use-primitives-text/transformers/emphasis-elements.js +47 -24
  15. package/dist/es2019/rules/use-primitives-text/transformers/paragraph-elements.js +63 -52
  16. package/dist/es2019/rules/use-primitives-text/transformers/span-elements.js +55 -30
  17. package/dist/es2019/rules/use-primitives-text/transformers/strong-elements.js +47 -24
  18. package/dist/esm/rules/no-legacy-icons/helpers.js +3 -3
  19. package/dist/esm/rules/use-heading/config/index.js +2 -1
  20. package/dist/esm/rules/use-heading/transformers/native-elements.js +61 -31
  21. package/dist/esm/rules/use-primitives-text/config/index.js +2 -1
  22. package/dist/esm/rules/use-primitives-text/transformers/emphasis-elements.js +48 -26
  23. package/dist/esm/rules/use-primitives-text/transformers/paragraph-elements.js +62 -51
  24. package/dist/esm/rules/use-primitives-text/transformers/span-elements.js +56 -32
  25. package/dist/esm/rules/use-primitives-text/transformers/strong-elements.js +48 -26
  26. package/dist/types/rules/use-heading/config/index.d.ts +2 -1
  27. package/dist/types/rules/use-heading/transformers/native-elements.d.ts +5 -1
  28. package/dist/types/rules/use-primitives-text/config/index.d.ts +1 -0
  29. package/dist/types/rules/use-primitives-text/transformers/emphasis-elements.d.ts +6 -1
  30. package/dist/types/rules/use-primitives-text/transformers/paragraph-elements.d.ts +1 -0
  31. package/dist/types/rules/use-primitives-text/transformers/span-elements.d.ts +6 -1
  32. package/dist/types/rules/use-primitives-text/transformers/strong-elements.d.ts +6 -1
  33. package/dist/types-ts4.5/rules/use-heading/config/index.d.ts +2 -1
  34. package/dist/types-ts4.5/rules/use-heading/transformers/native-elements.d.ts +5 -1
  35. package/dist/types-ts4.5/rules/use-primitives-text/config/index.d.ts +1 -0
  36. package/dist/types-ts4.5/rules/use-primitives-text/transformers/emphasis-elements.d.ts +6 -1
  37. package/dist/types-ts4.5/rules/use-primitives-text/transformers/paragraph-elements.d.ts +1 -0
  38. package/dist/types-ts4.5/rules/use-primitives-text/transformers/span-elements.d.ts +6 -1
  39. package/dist/types-ts4.5/rules/use-primitives-text/transformers/strong-elements.d.ts +6 -1
  40. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/eslint-plugin-design-system
2
2
 
3
+ ## 10.13.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#128427](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/128427)
8
+ [`ade1e717764e2`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ade1e717764e2) -
9
+ Update no-legacy-icons eslint rule following changes to color prop of new icon components
10
+
11
+ ### Patch Changes
12
+
13
+ - [#127303](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/127303)
14
+ [`8c7d9e510fc2a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8c7d9e510fc2a) -
15
+ New rule config option `enableUnsafeReport` for `use-primitives-text` and `use-heading` to enable
16
+ error reporting for native typography elements that are not autofixable.
17
+ - Updated dependencies
18
+
3
19
  ## 10.12.5
4
20
 
5
21
  ### Patch Changes
@@ -142,12 +142,12 @@ var createGuidance = exports.createGuidance = function createGuidance(iconPackag
142
142
  * @returns True if the color can be migrated, false otherwise
143
143
  */
144
144
  var canMigrateColor = exports.canMigrateColor = function canMigrateColor(color) {
145
- if (color.match(/^color\.text$/)) {
146
- return true;
147
- } else if (color.match(/^color\.icon/)) {
145
+ if (color.match(/^color\.icon/)) {
148
146
  return true;
149
147
  } else if (color.match(/^color\.link/)) {
150
148
  return true;
149
+ } else if (color.match(/^color\.text/)) {
150
+ return true;
151
151
  } else if (color === 'currentColor') {
152
152
  return true;
153
153
  } else {
@@ -7,7 +7,8 @@ exports.getConfig = void 0;
7
7
  var defaults = {
8
8
  failSilently: false,
9
9
  patterns: ['native-elements'],
10
- enableUnsafeAutofix: false
10
+ enableUnsafeAutofix: false,
11
+ enableUnsafeReport: false
11
12
  };
12
13
  var getConfig = exports.getConfig = function getConfig(overrides) {
13
14
  return Object.assign({}, defaults, overrides);
@@ -28,63 +28,93 @@ var NativeElements = exports.NativeElements = {
28
28
  var context = _ref.context,
29
29
  config = _ref.config;
30
30
  // Check whether all criteria needed to make a transformation are met
31
- if (!NativeElements._check(node, {
32
- context: context,
33
- config: config
34
- })) {
35
- return;
36
- }
37
- var fix = NativeElements._fix(node, {
38
- context: context,
39
- config: config
40
- });
41
- context.report(_objectSpread({
42
- node: node,
43
- messageId: 'preferHeading'
44
- }, config.enableUnsafeAutofix ? {
45
- fix: fix
46
- } : {
47
- suggest: [{
48
- desc: "Convert to Heading",
31
+ var _NativeElements$_chec = NativeElements._check(node, {
32
+ context: context,
33
+ config: config
34
+ }),
35
+ success = _NativeElements$_chec.success,
36
+ autoFixable = _NativeElements$_chec.autoFixable;
37
+ if (success && autoFixable) {
38
+ var fix = NativeElements._fix(node, {
39
+ context: context,
40
+ config: config
41
+ });
42
+ context.report(_objectSpread({
43
+ node: node,
44
+ messageId: 'preferHeading'
45
+ }, config.enableUnsafeAutofix ? {
49
46
  fix: fix
50
- }]
51
- }));
47
+ } : {
48
+ suggest: [{
49
+ desc: "Convert to Heading",
50
+ fix: fix
51
+ }]
52
+ }));
53
+ } else if (success && config.enableUnsafeReport) {
54
+ context.report({
55
+ node: node,
56
+ messageId: 'preferHeading'
57
+ });
58
+ }
52
59
  },
53
60
  _check: function _check(node, _ref2) {
54
61
  var config = _ref2.config;
55
62
  if (!config.patterns.includes('native-elements')) {
56
- return false;
63
+ return {
64
+ success: false
65
+ };
57
66
  }
58
67
  if (!(0, _eslintCodemodUtils.isNodeOfType)(node, 'JSXElement')) {
59
- return false;
68
+ return {
69
+ success: false
70
+ };
60
71
  }
61
72
  if (!node.children.length) {
62
- return false;
63
- }
64
- if (!node.parent) {
65
- return false;
73
+ return {
74
+ success: false
75
+ };
66
76
  }
67
77
  var elementName = ast.JSXElement.getName(node);
68
78
  if (!Object.keys(tagSizeMap).includes(elementName)) {
69
- return false;
79
+ return {
80
+ success: false
81
+ };
82
+ }
83
+ if (!node.parent) {
84
+ return {
85
+ success: true,
86
+ autoFixable: false
87
+ };
70
88
  }
71
89
 
72
90
  // Element has to be first element of its siblings
73
91
  if (!((0, _eslintCodemodUtils.isNodeOfType)(node.parent, 'JSXElement') || (0, _eslintCodemodUtils.isNodeOfType)(node.parent, 'JSXFragment'))) {
74
- return false;
92
+ return {
93
+ success: true,
94
+ autoFixable: false
95
+ };
75
96
  }
76
97
  var siblings = ast.JSXElement.getChildren(node.parent);
77
98
  if (siblings.length > 1) {
78
99
  var _siblings$0$range, _node$range, _siblings$0$range2, _node$range2;
79
100
  // Only report if element is first child element
80
101
  if (((_siblings$0$range = siblings[0].range) === null || _siblings$0$range === void 0 ? void 0 : _siblings$0$range[0]) !== ((_node$range = node.range) === null || _node$range === void 0 ? void 0 : _node$range[0]) || ((_siblings$0$range2 = siblings[0].range) === null || _siblings$0$range2 === void 0 ? void 0 : _siblings$0$range2[1]) !== ((_node$range2 = node.range) === null || _node$range2 === void 0 ? void 0 : _node$range2[1])) {
81
- return false;
102
+ return {
103
+ success: true,
104
+ autoFixable: false
105
+ };
82
106
  }
83
107
  }
84
108
  if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
85
- return false;
109
+ return {
110
+ success: true,
111
+ autoFixable: false
112
+ };
86
113
  }
87
- return true;
114
+ return {
115
+ success: true,
116
+ autoFixable: true
117
+ };
88
118
  },
89
119
  _fix: function _fix(node, _ref3) {
90
120
  var context = _ref3.context;
@@ -8,7 +8,8 @@ var defaults = {
8
8
  failSilently: false,
9
9
  patterns: ['paragraph-elements', 'span-elements', 'strong-elements', 'emphasis-elements'],
10
10
  inheritColor: false,
11
- enableUnsafeAutofix: false
11
+ enableUnsafeAutofix: false,
12
+ enableUnsafeReport: false
12
13
  };
13
14
  var getConfig = exports.getConfig = function getConfig(overrides) {
14
15
  return Object.assign({}, defaults, overrides);
@@ -24,53 +24,75 @@ var EmphasisElements = exports.EmphasisElements = {
24
24
  }
25
25
 
26
26
  // Check whether all criteria needed to make a transformation are met
27
- if (!EmphasisElements._check(node, {
28
- context: context,
29
- config: config
30
- })) {
31
- return;
32
- }
33
- var fix = EmphasisElements._fix(node, {
34
- context: context,
35
- config: config
36
- });
37
- context.report(_objectSpread({
38
- node: node.openingElement,
39
- messageId: 'preferPrimitivesText'
40
- }, config.enableUnsafeAutofix ? {
41
- fix: fix
42
- } : {
43
- suggest: [{
44
- desc: "Convert to Text",
27
+ var _EmphasisElements$_ch = EmphasisElements._check(node, {
28
+ context: context,
29
+ config: config
30
+ }),
31
+ success = _EmphasisElements$_ch.success,
32
+ autoFixable = _EmphasisElements$_ch.autoFixable;
33
+ if (success && autoFixable) {
34
+ var fix = EmphasisElements._fix(node, {
35
+ context: context,
36
+ config: config
37
+ });
38
+ context.report(_objectSpread({
39
+ node: node.openingElement,
40
+ messageId: 'preferPrimitivesText'
41
+ }, config.enableUnsafeAutofix ? {
45
42
  fix: fix
46
- }]
47
- }));
43
+ } : {
44
+ suggest: [{
45
+ desc: "Convert to Text",
46
+ fix: fix
47
+ }]
48
+ }));
49
+ } else if (success && config.enableUnsafeReport) {
50
+ context.report({
51
+ node: node.openingElement,
52
+ messageId: 'preferPrimitivesText'
53
+ });
54
+ }
48
55
  },
49
56
  _check: function _check(node, _ref2) {
50
57
  var context = _ref2.context,
51
58
  config = _ref2.config;
52
59
  if (!config.patterns.includes('emphasis-elements')) {
53
- return false;
60
+ return {
61
+ success: false
62
+ };
54
63
  }
55
64
  var elementName = ast.JSXElement.getName(node);
56
65
  if (elementName !== 'em') {
57
- return false;
66
+ return {
67
+ success: false
68
+ };
58
69
  }
59
70
  if (!node.children.length) {
60
- return false;
71
+ return {
72
+ success: false
73
+ };
61
74
  }
62
75
 
63
76
  // Element has no unallowed props
64
77
  if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
65
- return false;
78
+ return {
79
+ success: true,
80
+ autoFixable: false
81
+ };
66
82
  }
67
83
 
68
84
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
69
85
  var importDeclaration = ast.Root.findImportsByModule(context.getSourceCode().ast.body, '@atlaskit/primitives');
70
86
  if (importDeclaration.length > 1) {
71
- return false;
87
+ return {
88
+ success: true,
89
+ autoFixable: false
90
+ };
72
91
  }
73
- return true;
92
+ return {
93
+ success: true,
94
+ autoFixable: true
95
+ };
74
96
  },
75
97
  _fix: function _fix(node, _ref3) {
76
98
  var context = _ref3.context,
@@ -29,55 +29,60 @@ var ParagraphElements = exports.ParagraphElements = {
29
29
  config: config
30
30
  }),
31
31
  success = _ParagraphElements$_c.success,
32
+ autoFixable = _ParagraphElements$_c.autoFixable,
32
33
  refs = _ParagraphElements$_c.refs;
33
- if (!success) {
34
- return;
35
- }
36
- if (refs.siblings.length > 1) {
37
- var _refs$siblings$0$loc, _refs$siblings$loc;
38
- /**
39
- * Highlighting from first opening element to last closing element
40
- * to indicate fix will change all p elements and wrap them in a Stack,
41
- * falls back to first opening element.
42
- */
43
- var startLoc = (_refs$siblings$0$loc = refs.siblings[0].loc) === null || _refs$siblings$0$loc === void 0 ? void 0 : _refs$siblings$0$loc.start;
44
- var endLoc = (_refs$siblings$loc = refs.siblings[refs.siblings.length - 1].loc) === null || _refs$siblings$loc === void 0 ? void 0 : _refs$siblings$loc.end;
45
- var fix = ParagraphElements._fixMultiple(node, {
46
- context: context,
47
- config: config,
48
- refs: refs
49
- });
50
- context.report(_objectSpread({
51
- loc: startLoc && endLoc && {
52
- start: startLoc,
53
- end: endLoc
54
- },
55
- node: node.openingElement,
56
- messageId: 'preferPrimitivesStackedText'
57
- }, config.enableUnsafeAutofix ? {
58
- fix: fix
59
- } : {
60
- suggest: [{
61
- desc: "Convert to Text and Stack",
34
+ if (success && autoFixable) {
35
+ if (refs.siblings.length > 1) {
36
+ var _refs$siblings$0$loc, _refs$siblings$loc;
37
+ /**
38
+ * Highlighting from first opening element to last closing element
39
+ * to indicate fix will change all p elements and wrap them in a Stack,
40
+ * falls back to first opening element.
41
+ */
42
+ var startLoc = (_refs$siblings$0$loc = refs.siblings[0].loc) === null || _refs$siblings$0$loc === void 0 ? void 0 : _refs$siblings$0$loc.start;
43
+ var endLoc = (_refs$siblings$loc = refs.siblings[refs.siblings.length - 1].loc) === null || _refs$siblings$loc === void 0 ? void 0 : _refs$siblings$loc.end;
44
+ var fix = ParagraphElements._fixMultiple(node, {
45
+ context: context,
46
+ config: config,
47
+ refs: refs
48
+ });
49
+ context.report(_objectSpread({
50
+ loc: startLoc && endLoc && {
51
+ start: startLoc,
52
+ end: endLoc
53
+ },
54
+ node: node.openingElement,
55
+ messageId: 'preferPrimitivesStackedText'
56
+ }, config.enableUnsafeAutofix ? {
62
57
  fix: fix
63
- }]
64
- }));
65
- } else {
66
- var _fix = ParagraphElements._fixSingle(node, {
67
- context: context,
68
- config: config
69
- });
70
- context.report(_objectSpread({
71
- node: node,
72
- messageId: 'preferPrimitivesText'
73
- }, config.enableUnsafeAutofix ? {
74
- fix: _fix
75
- } : {
76
- suggest: [{
77
- desc: "Convert to Text",
58
+ } : {
59
+ suggest: [{
60
+ desc: "Convert to Text and Stack",
61
+ fix: fix
62
+ }]
63
+ }));
64
+ } else {
65
+ var _fix = ParagraphElements._fixSingle(node, {
66
+ context: context,
67
+ config: config
68
+ });
69
+ context.report(_objectSpread({
70
+ node: node.openingElement,
71
+ messageId: 'preferPrimitivesText'
72
+ }, config.enableUnsafeAutofix ? {
78
73
  fix: _fix
79
- }]
80
- }));
74
+ } : {
75
+ suggest: [{
76
+ desc: "Convert to Text",
77
+ fix: _fix
78
+ }]
79
+ }));
80
+ }
81
+ } else if (success && config.enableUnsafeReport) {
82
+ context.report({
83
+ node: node.openingElement,
84
+ messageId: 'preferPrimitivesText'
85
+ });
81
86
  }
82
87
  },
83
88
  _check: function _check(node, _ref2) {
@@ -112,7 +117,8 @@ var ParagraphElements = exports.ParagraphElements = {
112
117
  // All siblings have to be paragraph elements with no unallowed props
113
118
  if (!(0, _eslintCodemodUtils.isNodeOfType)(node.parent, 'JSXElement')) {
114
119
  return {
115
- success: false,
120
+ success: true,
121
+ autoFixable: false,
116
122
  refs: {
117
123
  siblings: []
118
124
  }
@@ -124,7 +130,8 @@ var ParagraphElements = exports.ParagraphElements = {
124
130
  // Only report for the first p element by comparing node location
125
131
  if (((_siblings$0$range = siblings[0].range) === null || _siblings$0$range === void 0 ? void 0 : _siblings$0$range[0]) !== ((_node$range = node.range) === null || _node$range === void 0 ? void 0 : _node$range[0]) || ((_siblings$0$range2 = siblings[0].range) === null || _siblings$0$range2 === void 0 ? void 0 : _siblings$0$range2[1]) !== ((_node$range2 = node.range) === null || _node$range2 === void 0 ? void 0 : _node$range2[1])) {
126
132
  return {
127
- success: false,
133
+ success: true,
134
+ autoFixable: false,
128
135
  refs: {
129
136
  siblings: siblings
130
137
  }
@@ -142,7 +149,8 @@ var ParagraphElements = exports.ParagraphElements = {
142
149
  });
143
150
  if (!siblingsMatch) {
144
151
  return {
145
- success: false,
152
+ success: true,
153
+ autoFixable: false,
146
154
  refs: {
147
155
  siblings: siblings
148
156
  }
@@ -150,7 +158,8 @@ var ParagraphElements = exports.ParagraphElements = {
150
158
  }
151
159
  } else if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
152
160
  return {
153
- success: false,
161
+ success: true,
162
+ autoFixable: false,
154
163
  refs: {
155
164
  siblings: siblings
156
165
  }
@@ -161,7 +170,8 @@ var ParagraphElements = exports.ParagraphElements = {
161
170
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
162
171
  if (importDeclaration.length > 1) {
163
172
  return {
164
- success: false,
173
+ success: true,
174
+ autoFixable: false,
165
175
  refs: {
166
176
  siblings: siblings
167
177
  }
@@ -169,6 +179,7 @@ var ParagraphElements = exports.ParagraphElements = {
169
179
  }
170
180
  return {
171
181
  success: true,
182
+ autoFixable: true,
172
183
  refs: {
173
184
  siblings: siblings
174
185
  }
@@ -24,58 +24,82 @@ var SpanElements = exports.SpanElements = {
24
24
  }
25
25
 
26
26
  // Check whether all criteria needed to make a transformation are met
27
- if (!SpanElements._check(node, {
28
- context: context,
29
- config: config
30
- })) {
31
- return;
32
- }
33
- var fix = SpanElements._fix(node, {
34
- context: context,
35
- config: config
36
- });
37
- context.report(_objectSpread({
38
- node: node.openingElement,
39
- messageId: 'preferPrimitivesText'
40
- }, config.enableUnsafeAutofix ? {
41
- fix: fix
42
- } : {
43
- suggest: [{
44
- desc: "Convert to Text",
27
+ var _SpanElements$_check = SpanElements._check(node, {
28
+ context: context,
29
+ config: config
30
+ }),
31
+ success = _SpanElements$_check.success,
32
+ autoFixable = _SpanElements$_check.autoFixable;
33
+ if (success && autoFixable) {
34
+ var fix = SpanElements._fix(node, {
35
+ context: context,
36
+ config: config
37
+ });
38
+ context.report(_objectSpread({
39
+ node: node.openingElement,
40
+ messageId: 'preferPrimitivesText'
41
+ }, config.enableUnsafeAutofix ? {
45
42
  fix: fix
46
- }]
47
- }));
43
+ } : {
44
+ suggest: [{
45
+ desc: "Convert to Text",
46
+ fix: fix
47
+ }]
48
+ }));
49
+ } else if (success && config.enableUnsafeReport) {
50
+ context.report({
51
+ node: node.openingElement,
52
+ messageId: 'preferPrimitivesText'
53
+ });
54
+ }
48
55
  },
49
56
  _check: function _check(node, _ref2) {
50
57
  var context = _ref2.context,
51
58
  config = _ref2.config;
52
59
  if (!config.patterns.includes('span-elements')) {
53
- return false;
60
+ return {
61
+ success: false
62
+ };
54
63
  }
55
64
  var elementName = ast.JSXElement.getName(node);
56
65
  if (elementName !== 'span') {
57
- return false;
66
+ return {
67
+ success: false
68
+ };
58
69
  }
59
70
  if (!node.children.length) {
60
- return false;
61
- }
62
-
63
- // Element has no unallowed props
64
- if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
65
- return false;
71
+ return {
72
+ success: false
73
+ };
66
74
  }
67
75
 
68
76
  // Only allow elements with strings as children
69
77
  if (!(0, _common.hasTextChildrenOnly)(node)) {
70
- return false;
78
+ return {
79
+ success: false
80
+ };
81
+ }
82
+
83
+ // Element has no unallowed props
84
+ if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
85
+ return {
86
+ success: true,
87
+ autoFixable: false
88
+ };
71
89
  }
72
- var importDeclaration = ast.Root.findImportsByModule(context.getSourceCode().ast.body, '@atlaskit/primitives');
73
90
 
74
91
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
92
+ var importDeclaration = ast.Root.findImportsByModule(context.getSourceCode().ast.body, '@atlaskit/primitives');
75
93
  if (importDeclaration.length > 1) {
76
- return false;
94
+ return {
95
+ success: true,
96
+ autoFixable: false
97
+ };
77
98
  }
78
- return true;
99
+ return {
100
+ success: true,
101
+ autoFixable: true
102
+ };
79
103
  },
80
104
  _fix: function _fix(node, _ref3) {
81
105
  var context = _ref3.context,
@@ -24,53 +24,75 @@ var StrongElements = exports.StrongElements = {
24
24
  }
25
25
 
26
26
  // Check whether all criteria needed to make a transformation are met
27
- if (!StrongElements._check(node, {
28
- context: context,
29
- config: config
30
- })) {
31
- return;
32
- }
33
- var fix = StrongElements._fix(node, {
34
- context: context,
35
- config: config
36
- });
37
- context.report(_objectSpread({
38
- node: node.openingElement,
39
- messageId: 'preferPrimitivesText'
40
- }, config.enableUnsafeAutofix ? {
41
- fix: fix
42
- } : {
43
- suggest: [{
44
- desc: "Convert to Text",
27
+ var _StrongElements$_chec = StrongElements._check(node, {
28
+ context: context,
29
+ config: config
30
+ }),
31
+ success = _StrongElements$_chec.success,
32
+ autoFixable = _StrongElements$_chec.autoFixable;
33
+ if (success && autoFixable) {
34
+ var fix = StrongElements._fix(node, {
35
+ context: context,
36
+ config: config
37
+ });
38
+ context.report(_objectSpread({
39
+ node: node.openingElement,
40
+ messageId: 'preferPrimitivesText'
41
+ }, config.enableUnsafeAutofix ? {
45
42
  fix: fix
46
- }]
47
- }));
43
+ } : {
44
+ suggest: [{
45
+ desc: "Convert to Text",
46
+ fix: fix
47
+ }]
48
+ }));
49
+ } else if (success && config.enableUnsafeReport) {
50
+ context.report({
51
+ node: node.openingElement,
52
+ messageId: 'preferPrimitivesText'
53
+ });
54
+ }
48
55
  },
49
56
  _check: function _check(node, _ref2) {
50
57
  var context = _ref2.context,
51
58
  config = _ref2.config;
52
59
  if (!config.patterns.includes('strong-elements')) {
53
- return false;
60
+ return {
61
+ success: false
62
+ };
54
63
  }
55
64
  var elementName = ast.JSXElement.getName(node);
56
65
  if (elementName !== 'strong') {
57
- return false;
66
+ return {
67
+ success: false
68
+ };
58
69
  }
59
70
  if (!node.children.length) {
60
- return false;
71
+ return {
72
+ success: false
73
+ };
61
74
  }
62
75
 
63
76
  // Element has no unallowed props
64
77
  if (!ast.JSXElement.hasAllowedAttrsOnly(node, _common.allowedAttrs)) {
65
- return false;
78
+ return {
79
+ success: true,
80
+ autoFixable: false
81
+ };
66
82
  }
67
83
 
68
84
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
69
85
  var importDeclaration = ast.Root.findImportsByModule(context.getSourceCode().ast.body, '@atlaskit/primitives');
70
86
  if (importDeclaration.length > 1) {
71
- return false;
87
+ return {
88
+ success: true,
89
+ autoFixable: false
90
+ };
72
91
  }
73
- return true;
92
+ return {
93
+ success: true,
94
+ autoFixable: true
95
+ };
74
96
  },
75
97
  _fix: function _fix(node, _ref3) {
76
98
  var context = _ref3.context,