@ukic/codemod 1.0.0-alpha.8 → 1.2.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.
@@ -1,25 +1,25 @@
1
1
  import { generateRegex } from "./generate-regex.js";
2
-
2
+ import { changes } from "../data/data.js";
3
3
  /**
4
4
  *
5
5
  * @param {*} stringArray
6
6
  * @param {*} jsonData
7
7
  * @returns file string with changes made by comparing v2 and v3 names in predefined json file
8
8
  */
9
- export function simpleTestComparison(stringArray, jsonData) {
9
+ export function simpleTestComparison(stringArray) {
10
10
  let fileString = stringArray;
11
11
 
12
- const componentsToChange = new Set(jsonData.map((entry) => entry.v2Name));
13
-
14
- componentsToChange.forEach((component) => {
15
- const regex = generateRegex(component, "test-simple");
16
- const match = fileString.match(regex);
17
- if (match) {
18
- const newProp = jsonData.find((field) => match[0].includes(field.v2Name));
19
- if (newProp) {
20
- fileString = fileString.replaceAll(component, newProp.v3Name);
12
+ Object.keys(changes).forEach((component) => {
13
+ changes[component].map((field) => {
14
+ let regex = "";
15
+ if (field.type === "prop" || field.type === "absolute")
16
+ regex = generateRegex(field.v2, "test-simple");
17
+ else regex = generateRegex(field.v2, field.type);
18
+ const match = fileString.match(regex);
19
+ if (match) {
20
+ fileString = fileString.replaceAll(field.v2, field.v3);
21
21
  }
22
- }
22
+ });
23
23
  });
24
24
 
25
25
  return fileString;
package/data/changes.js DELETED
@@ -1,188 +0,0 @@
1
- export default [
2
- {
3
- v2Name: "small=true",
4
- v3Name: 'size="small"',
5
- componentsAffected: "ic-select",
6
- type: "prop",
7
- },
8
- {
9
- v2Name: `small\\b[^'"]`,
10
- v3Name: 'size="small"',
11
- componentsAffected: "ic-select",
12
- type: "absolute",
13
- },
14
- {
15
- v2Name: `size=[{]?["']default['"][}]?`,
16
- v3Name: 'size="medium"',
17
- componentsAffected: "ic-status-tag",
18
- type: "absolute",
19
- },
20
- {
21
- v2Name: `size=[{]?["']default['"][}]?`,
22
- v3Name: 'size="medium"',
23
- componentsAffected: "ic-dialog",
24
- type: "absolute",
25
- },
26
- {
27
- v2Name: `size=[{]?["']default['"][}]?`,
28
- v3Name: 'size="medium"',
29
- componentsAffected: "ic-switch",
30
- type: "absolute",
31
- },
32
- {
33
- v2Name: "group-title",
34
- v3Name: "label",
35
- componentsAffected: "ic-accordion-group",
36
- type: "prop",
37
- },
38
- {
39
- v2Name: "group-title",
40
- v3Name: "label",
41
- componentsAffected: "ic-footer-link-group",
42
- type: "prop",
43
- },
44
- {
45
- v2Name: "text-label",
46
- v3Name: "label",
47
- componentsAffected: "ic-badge",
48
- type: "prop",
49
- },
50
- {
51
- v2Name: "body-max-lines",
52
- v3Name: "max-lines",
53
- componentsAffected: "ic-empty-state",
54
- type: "prop",
55
- },
56
- {
57
- v2Name: "theme",
58
- v3Name: "brand",
59
- componentsAffected: "ic-theme",
60
- type: "prop",
61
- },
62
- {
63
- v2Name: "step-type",
64
- v3Name: "type",
65
- componentsAffected: "ic-step",
66
- type: "prop",
67
- },
68
- {
69
- v2Name: "step-title",
70
- v3Name: "heading",
71
- componentsAffected: "ic-step",
72
- type: "prop",
73
- },
74
- {
75
- v2Name: "step-subtitle",
76
- v3Name: "subheading",
77
- componentsAffected: "ic-step",
78
- type: "prop",
79
- },
80
- {
81
- v2Name: "step-status",
82
- v3Name: "status",
83
- componentsAffected: "ic-step",
84
- type: "prop",
85
- },
86
- {
87
- v2Name: "adjacent-count",
88
- v3Name: "adjacent-page-count",
89
- componentsAffected: "ic-pagination",
90
- type: "prop",
91
- },
92
- {
93
- v2Name: "boundary-count",
94
- v3Name: "boundary-page-count",
95
- componentsAffected: "ic-pagination",
96
- type: "prop",
97
- },
98
- {
99
- v2Name: "keyboard-shortcut",
100
- v3Name: "keyboard-shortcut-label",
101
- componentsAffected: "ic-menu-item",
102
- type: "prop",
103
- },
104
- {
105
- v2Name: "disable-filter",
106
- v3Name: "disable-auto-filtering",
107
- componentsAffected: "ic-search-bar",
108
- type: "prop",
109
- },
110
- {
111
- v2Name: "disable-filter",
112
- v3Name: "disable-auto-filtering",
113
- componentsAffected: "ic-select",
114
- type: "prop",
115
- },
116
- {
117
- v2Name: "max-length",
118
- v3Name: "max-characters",
119
- componentsAffected: "ic-text-field",
120
- type: "prop",
121
- },
122
- {
123
- v2Name: "toggle-checked",
124
- v3Name: "checked",
125
- componentsAffected: "ic-menu-item",
126
- type: "prop",
127
- },
128
- {
129
- v2Name: "toggle-checked",
130
- v3Name: "checked",
131
- componentsAffected: "ic-toggle-button",
132
- type: "prop",
133
- },
134
- {
135
- v2Name: "hint-text",
136
- v3Name: "assistive-hint-text",
137
- componentsAffected: "ic-search-bar",
138
- type: "prop",
139
- },
140
- {
141
- v2Name: "side-nav-expanded",
142
- v3Name: "ic-side-nav-expanded",
143
- componentsAffected: "ic-side-navigation",
144
- type: "prop",
145
- },
146
- {
147
- v2Name: "top-nav-resized",
148
- v3Name: "ic-top-nav-resized",
149
- componentsAffected: "ic-top-navigation",
150
- type: "prop",
151
- },
152
- {
153
- v2Name: "ic-data-entity",
154
- v3Name: "ic-data-list",
155
- componentsAffected: "ic-data-entity",
156
- type: "web-component",
157
- },
158
- {
159
- v2Name: "HTMLIcDataEntityElement",
160
- v3Name: "HTMLIcDataListElement",
161
- componentsAffected: "HTMLIcDataEntityElement",
162
- type: "component",
163
- },
164
- {
165
- v2Name: "ic-card",
166
- v3Name: "ic-card-vertical",
167
- componentsAffected: "ic-card",
168
- type: "web-component",
169
- },
170
- {
171
- v2Name: "HTMLIcCardElement",
172
- v3Name: "HTMLIcCardVerticalElement",
173
- componentsAffected: "HTMLIcCardElement",
174
- type: "component",
175
- },
176
- {
177
- v2Name: "ic-select-with-multi",
178
- v3Name: "ic-select",
179
- componentsAffected: "ic-select-with-multi",
180
- type: "web-component",
181
- },
182
- {
183
- v2Name: "HTMLIcSelectWithMultiElement",
184
- v3Name: "HTMLIcSelectElement",
185
- componentsAffected: "HTMLIcSelectWithMultiElement",
186
- type: "component",
187
- },
188
- ];
@@ -1,206 +0,0 @@
1
- export default [
2
- {
3
- v2Name: "small={true}",
4
- v3Name: "size={'small'}",
5
- componentsAffected: "IcSelect",
6
- type: "prop",
7
- },
8
- {
9
- v2Name: `small\\b[^'"]`,
10
- v3Name: "size={'small'}",
11
- componentsAffected: "IcSelect",
12
- type: "absolute",
13
- },
14
- {
15
- v2Name: "small={true}",
16
- v3Name: "size={'small'}",
17
- componentsAffected: "IcSelect",
18
- type: "prop",
19
- },
20
- {
21
- v2Name: `size=[{]?["']default['"][}]?`,
22
- v3Name: "size={'medium'}",
23
- componentsAffected: "IcStatusTag",
24
- type: "absolute",
25
- },
26
- {
27
- v2Name: `size=[{]?["']default['"][}]?`,
28
- v3Name: "size={'medium'}",
29
- componentsAffected: "IcSwitch",
30
- type: "absolute",
31
- },
32
- {
33
- v2Name: `size=[{]?["']default['"][}]?`,
34
- v3Name: "size={'medium'}",
35
- componentsAffected: "IcDialog",
36
- type: "absolute",
37
- },
38
- {
39
- v2Name: "groupTitle",
40
- v3Name: "label",
41
- componentsAffected: "IcAccordionGroup",
42
- type: "prop",
43
- },
44
- {
45
- v2Name: "groupTitle",
46
- v3Name: "label",
47
- componentsAffected: "IcFooterLinkGroup",
48
- type: "prop",
49
- },
50
- {
51
- v2Name: "textLabel",
52
- v3Name: "label",
53
- componentsAffected: "IcBadge",
54
- type: "prop",
55
- },
56
- {
57
- v2Name: "bodyMaxLines",
58
- v3Name: "maxLines",
59
- componentsAffected: "IcEmptyState",
60
- type: "prop",
61
- },
62
- {
63
- v2Name: "color",
64
- v3Name: "brandColor",
65
- componentsAffected: "IcTheme",
66
- type: "prop",
67
- },
68
- {
69
- v2Name: "stepType",
70
- v3Name: "type",
71
- componentsAffected: "IcStep",
72
- type: "prop",
73
- },
74
- {
75
- v2Name: "stepTitle",
76
- v3Name: "heading",
77
- componentsAffected: "IcStep",
78
- type: "prop",
79
- },
80
- {
81
- v2Name: "stepSubtitle",
82
- v3Name: "subheading",
83
- componentsAffected: "IcStep",
84
- type: "prop",
85
- },
86
- {
87
- v2Name: "stepStatus",
88
- v3Name: "status",
89
- componentsAffected: "IcStep",
90
- type: "prop",
91
- },
92
- {
93
- v2Name: "adjacentCount",
94
- v3Name: "adjacentPageCount",
95
- componentsAffected: "IcPagination",
96
- type: "prop",
97
- },
98
- {
99
- v2Name: "boundaryCount",
100
- v3Name: "boundaryPageCount",
101
- componentsAffected: "IcPagination",
102
- type: "prop",
103
- },
104
- {
105
- v2Name: "keyboardShortcut",
106
- v3Name: "keyboardShortcutLabel",
107
- componentsAffected: "IcMenuItem",
108
- type: "prop",
109
- },
110
- {
111
- v2Name: "disableFilter",
112
- v3Name: "disableAutoFiltering",
113
- componentsAffected: "IcSearchBar",
114
- type: "prop",
115
- },
116
- {
117
- v2Name: "disableFilter",
118
- v3Name: "disableAutoFiltering",
119
- componentsAffected: "IcSelect",
120
- type: "prop",
121
- },
122
- {
123
- v2Name: "maxLength",
124
- v3Name: "maxCharacters",
125
- componentsAffected: "IcTextField",
126
- type: "prop",
127
- },
128
- {
129
- v2Name: "toggleChecked",
130
- v3Name: "checked",
131
- componentsAffected: "IcMenuItem",
132
- type: "prop",
133
- },
134
- {
135
- v2Name: "toggleChecked",
136
- v3Name: "checked",
137
- componentsAffected: "IcToggleButton",
138
- type: "prop",
139
- },
140
- {
141
- v2Name: "hintText",
142
- v3Name: "assistiveHintText",
143
- componentsAffected: "IcSearchBar",
144
- type: "prop",
145
- },
146
- {
147
- v2Name: "sideNavExpanded",
148
- v3Name: "icSideNavExpanded",
149
- componentsAffected: "IcSideNavigation",
150
- type: "prop",
151
- },
152
- {
153
- v2Name: "onSideNavExpanded",
154
- v3Name: "onIcSideNavExpanded",
155
- componentsAffected: "IcSideNavigation",
156
- type: "prop",
157
- },
158
- {
159
- v2Name: "topNavResized",
160
- v3Name: "icTopNavResized",
161
- componentsAffected: "IcTopNavigation",
162
- type: "prop",
163
- },
164
- {
165
- v2Name: "onTopNavResized",
166
- v3Name: "onIcTopNavResized",
167
- componentsAffected: "IcTopNavigation",
168
- type: "prop",
169
- },
170
- {
171
- v2Name: "IcDataEntity",
172
- v3Name: "IcDataList",
173
- componentsAffected: "IcDataEntity",
174
- type: "component",
175
- },
176
- {
177
- v2Name: "HTMLIcDataEntityElement",
178
- v3Name: "HTMLIcDataListElement",
179
- componentsAffected: "HTMLIcDataEntityElement",
180
- type: "component",
181
- },
182
- {
183
- v2Name: "IcCard",
184
- v3Name: "IcCardVertical",
185
- componentsAffected: "IcCard",
186
- type: "component",
187
- },
188
- {
189
- v2Name: "HTMLIcCardElement",
190
- v3Name: "HTMLIcCardVerticalElement",
191
- componentsAffected: "HTMLIcCardElement",
192
- type: "component",
193
- },
194
- {
195
- v2Name: "IcSelectWithMulti",
196
- v3Name: "IcSelect",
197
- componentsAffected: "IcSelectWithMulti",
198
- type: "component",
199
- },
200
- {
201
- v2Name: "HTMLIcSelectWithMultiElement",
202
- v3Name: "HTMLIcSelectElement",
203
- componentsAffected: "HTMLIcSelectWithMultiElement",
204
- type: "component",
205
- },
206
- ];
@@ -1,56 +0,0 @@
1
- /**
2
- *
3
- * @param {*} stringArray
4
- * @param {*} jsonData
5
- * @param {*} jsonData
6
- * @returns File string with changes
7
- *
8
- * This function is used to compare prop name changes for components and if they are required to change in the file
9
- *
10
- * This is currently not in use, it will be kept here for future use as can be refactored to work with styled components if the need arises
11
- */
12
- export function testComparison(stringArray, jsonData) {
13
- let fileString = stringArray;
14
-
15
- const componentsAffected = new Set(
16
- jsonData.map((entry) => entry.componentsAffected)
17
- );
18
-
19
- componentsAffected.forEach((component) => {
20
- const regex = new RegExp(
21
- `const .*=.*querySelector[(]([^'"]+?).*${component}.*'`,
22
- "gm"
23
- );
24
- const match = fileString.match(regex);
25
- if (match !== null) {
26
- const variableNames = match.map((line) => {
27
- const split = line.split("=");
28
- const variableName = split[0].replace("const", "").trim();
29
- return variableName;
30
- });
31
-
32
- const variableNamesArray = Array.from(new Set(variableNames));
33
- variableNamesArray.forEach((variable) => {
34
- const regex = new RegExp(`${variable}[.].*?[)]`, "gm");
35
- const match = fileString.match(regex);
36
- if (match !== null) {
37
- match.map((line) => {
38
- const split = line.split(".");
39
- const prop = split[1].replace(")", "");
40
- const newProp = jsonData.find(
41
- (field) => field.v2Name === prop
42
- ).v3Name;
43
-
44
- const newFile = fileString.replaceAll(
45
- `${variable}.${prop}`,
46
- `${variable}.${newProp}`
47
- );
48
- fileString = newFile;
49
- });
50
- }
51
- });
52
- }
53
- });
54
-
55
- return fileString;
56
- }