@vkontakte/vkui-codemods 1.1.0-beta.2 → 1.1.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.
- package/dist/autoDetectVKUIVersion.js +16 -24
- package/dist/cli.js +97 -160
- package/dist/codemod-helpers.js +41 -43
- package/dist/getAvailableCodemods.js +13 -14
- package/dist/helpers/logger.js +17 -17
- package/dist/index.js +76 -147
- package/dist/report.js +4 -4
- package/dist/testHelpers/testHelper.js +17 -88
- package/dist/transforms/v6/accordion.js +10 -10
- package/dist/transforms/v6/action-sheet-item.js +5 -5
- package/dist/transforms/v6/action-sheet.js +15 -15
- package/dist/transforms/v6/alert.js +14 -14
- package/dist/transforms/v6/appearance-provider.js +8 -10
- package/dist/transforms/v6/banner.js +10 -10
- package/dist/transforms/v6/calendar-range.js +6 -6
- package/dist/transforms/v6/calendar.js +6 -6
- package/dist/transforms/v6/card-scroll.js +5 -5
- package/dist/transforms/v6/chip.js +6 -6
- package/dist/transforms/v6/chips-input.js +6 -6
- package/dist/transforms/v6/config-provider.js +20 -20
- package/dist/transforms/v6/content-card.js +7 -7
- package/dist/transforms/v6/custom-scroll-view.js +11 -13
- package/dist/transforms/v6/date-input.js +6 -6
- package/dist/transforms/v6/date-range-input.js +6 -6
- package/dist/transforms/v6/fixed-layout.js +11 -11
- package/dist/transforms/v6/forbid-imports.js +8 -8
- package/dist/transforms/v6/form-item.js +9 -9
- package/dist/transforms/v6/form-layout.js +10 -10
- package/dist/transforms/v6/gallery.js +5 -5
- package/dist/transforms/v6/gradient-prop-change.js +12 -12
- package/dist/transforms/v6/horizontal-cell-show-more.js +7 -11
- package/dist/transforms/v6/image-base.js +7 -7
- package/dist/transforms/v6/modal-card.js +16 -18
- package/dist/transforms/v6/modal-page-header.js +11 -11
- package/dist/transforms/v6/pagination.js +12 -12
- package/dist/transforms/v6/panel-header-content.js +10 -10
- package/dist/transforms/v6/panel-header.js +11 -11
- package/dist/transforms/v6/placeholder.js +5 -5
- package/dist/transforms/v6/popout-wrapper.js +9 -9
- package/dist/transforms/v6/popover.js +45 -54
- package/dist/transforms/v6/popper.js +35 -44
- package/dist/transforms/v6/range-slider.js +14 -25
- package/dist/transforms/v6/rich-tooltip.js +10 -10
- package/dist/transforms/v6/search.js +6 -6
- package/dist/transforms/v6/select.js +7 -7
- package/dist/transforms/v6/simple-cell.js +13 -15
- package/dist/transforms/v6/split-col.js +9 -9
- package/dist/transforms/v6/tabbar.js +5 -5
- package/dist/transforms/v6/tappable.js +13 -15
- package/dist/transforms/v6/text-tooltip.js +47 -58
- package/dist/transforms/v6/tooltip-container.js +14 -14
- package/dist/transforms/v6/tooltip.js +63 -72
- package/dist/transforms/v6/typography.js +19 -21
- package/dist/transforms/v6/users-stack.js +13 -13
- package/dist/transforms/v6/visually-hidden-input.js +13 -24
- package/dist/transforms/v7/action-sheet.js +5 -5
- package/dist/transforms/v7/alert.js +5 -5
- package/dist/transforms/v7/appearance-provider.js +12 -12
- package/dist/transforms/v7/appearance.js +16 -16
- package/dist/transforms/v7/banner.js +13 -14
- package/dist/transforms/v7/calendar.js +5 -5
- package/dist/transforms/v7/card-grid.js +5 -5
- package/dist/transforms/v7/card-scroll.js +17 -18
- package/dist/transforms/v7/cell-button.js +13 -13
- package/dist/transforms/v7/cell.js +5 -5
- package/dist/transforms/v7/chips-select.js +8 -8
- package/dist/transforms/v7/common/moveFromChildrenToLabel.js +19 -21
- package/dist/transforms/v7/common/remapSizePropValue.js +14 -16
- package/dist/transforms/v7/common/removeChildrenFromComponent.js +6 -6
- package/dist/transforms/v7/common/swapGapPropElements.js +7 -7
- package/dist/transforms/v7/config-provider.js +32 -36
- package/dist/transforms/v7/content-card.js +5 -5
- package/dist/transforms/v7/counter.js +12 -12
- package/dist/transforms/v7/custom-scroll-view.js +8 -8
- package/dist/transforms/v7/custom-select.js +8 -8
- package/dist/transforms/v7/date-picker.js +8 -8
- package/dist/transforms/v7/flex.js +6 -6
- package/dist/transforms/v7/form-item.js +29 -35
- package/dist/transforms/v7/form-status.js +5 -5
- package/dist/transforms/v7/header.js +21 -21
- package/dist/transforms/v7/horizontal-cell-show-more.js +16 -19
- package/dist/transforms/v7/horizontal-cell.js +5 -5
- package/dist/transforms/v7/horizontal-scroll.js +12 -12
- package/dist/transforms/v7/image-overlay.js +30 -32
- package/dist/transforms/v7/mini-info-cell.js +5 -5
- package/dist/transforms/v7/modal-card.js +7 -7
- package/dist/transforms/v7/onboarding-tooltip.js +5 -5
- package/dist/transforms/v7/panel-header-back.js +6 -6
- package/dist/transforms/v7/panel-header-close.js +6 -6
- package/dist/transforms/v7/panel-header-content.js +5 -5
- package/dist/transforms/v7/panel-header-edit.js +6 -6
- package/dist/transforms/v7/panel-header-submit.js +6 -6
- package/dist/transforms/v7/panel-spinner.js +10 -10
- package/dist/transforms/v7/placeholder.js +5 -5
- package/dist/transforms/v7/rich-cell.js +5 -5
- package/dist/transforms/v7/screen-spinner.js +7 -7
- package/dist/transforms/v7/scroll-arrow.js +20 -23
- package/dist/transforms/v7/select.js +8 -8
- package/dist/transforms/v7/separator.js +6 -6
- package/dist/transforms/v7/simple-cell.js +5 -5
- package/dist/transforms/v7/simple-grid.js +6 -6
- package/dist/transforms/v7/spacing.js +9 -9
- package/dist/transforms/v7/spinner.js +9 -9
- package/dist/transforms/v7/subnavigation-bar.js +10 -10
- package/dist/transforms/v7/subnavigation-button.js +5 -5
- package/dist/transforms/v7/tabbar-item.js +5 -5
- package/dist/transforms/v7/tooltip.js +5 -5
- package/dist/transforms/v7/typography.js +16 -17
- package/dist/transforms/v7/users-stack.js +13 -13
- package/dist/transforms/v8/action-sheet.js +6 -6
- package/dist/transforms/v8/alert.js +5 -5
- package/dist/transforms/v8/checkbox.js +12 -12
- package/dist/transforms/v8/chips-input.js +7 -7
- package/dist/transforms/v8/chips-select.js +7 -7
- package/dist/transforms/v8/common/moveAllPropsIntoSlotProp.js +6 -16
- package/dist/transforms/v8/common/moveInputPropsIntoSlotProps.js +8 -8
- package/dist/transforms/v8/common/movePropIntoSlotProps.js +44 -63
- package/dist/transforms/v8/custom-select.js +7 -7
- package/dist/transforms/v8/file.js +7 -7
- package/dist/transforms/v8/input.js +8 -7
- package/dist/transforms/v8/native-select.js +7 -7
- package/dist/transforms/v8/popout-wrapper.js +12 -12
- package/dist/transforms/v8/radio.js +12 -12
- package/dist/transforms/v8/rich-cell.js +11 -11
- package/dist/transforms/v8/search.js +8 -7
- package/dist/transforms/v8/select.js +7 -7
- package/dist/transforms/v8/snackbar.js +6 -6
- package/dist/transforms/v8/split-layout.js +7 -7
- package/dist/transforms/v8/switch.js +7 -7
- package/dist/transforms/v8/text-area.js +7 -7
- package/dist/transforms/v8/write-bar.js +7 -7
- package/package.json +6 -5
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.parser = void 0;
|
|
13
4
|
exports.default = transformer;
|
|
14
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
15
6
|
exports.parser = 'tsx';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
const componentName = 'Tooltip';
|
|
8
|
+
const componentNameTo = 'OnboardingTooltip';
|
|
9
|
+
const ATTRIBUTE_REPLACER = {
|
|
19
10
|
isShown: {
|
|
20
11
|
keyTo: 'shown',
|
|
21
12
|
},
|
|
@@ -26,14 +17,12 @@ var ATTRIBUTE_REPLACER = {
|
|
|
26
17
|
keyTo: 'offsetByCrossAxis',
|
|
27
18
|
},
|
|
28
19
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return v ? v.type === 'StringLiteral' : false;
|
|
36
|
-
};
|
|
20
|
+
const CORNER_OFFSET = { from: 'cornerOffset', to: 'arrowOffset' };
|
|
21
|
+
const CORNER_ABSOLUTE_OFFSET = { from: 'cornerAbsoluteOffset', to: 'isStaticArrowOffset' };
|
|
22
|
+
const PLACEMENT = 'placement';
|
|
23
|
+
const ALIGN_X = { from: 'alignX', to: PLACEMENT };
|
|
24
|
+
const ALIGN_Y = { from: 'alignY', to: PLACEMENT };
|
|
25
|
+
const isStringLiteral = (v) => v ? v.type === 'StringLiteral' : false;
|
|
37
26
|
function mapAlignX(x) {
|
|
38
27
|
switch (x) {
|
|
39
28
|
case 'left':
|
|
@@ -44,20 +33,20 @@ function mapAlignX(x) {
|
|
|
44
33
|
return '';
|
|
45
34
|
}
|
|
46
35
|
}
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
const replaceAttribute = (j, attributeReplacer, attribute) => {
|
|
37
|
+
const foundFix = attributeReplacer.getReplacers(attribute.node.name.name);
|
|
49
38
|
if (foundFix) {
|
|
50
|
-
|
|
39
|
+
const value = attribute.node.value;
|
|
51
40
|
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(foundFix.keyTo()), foundFix.valueTo(value)));
|
|
52
41
|
}
|
|
53
42
|
};
|
|
54
43
|
function transformer(file, api, options) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
const { alias } = options;
|
|
45
|
+
const j = api.jscodeshift;
|
|
46
|
+
const source = j(file.source);
|
|
47
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, componentName, alias);
|
|
48
|
+
const attributeReplacer = (0, codemod_helpers_1.createAttributeManipulator)(ATTRIBUTE_REPLACER, api);
|
|
49
|
+
let needRename = true;
|
|
61
50
|
if (!localName) {
|
|
62
51
|
return source.toSource();
|
|
63
52
|
}
|
|
@@ -65,10 +54,10 @@ function transformer(file, api, options) {
|
|
|
65
54
|
// подменяем импорт
|
|
66
55
|
source
|
|
67
56
|
.find(j.ImportDeclaration)
|
|
68
|
-
.filter(
|
|
57
|
+
.filter((path) => path.node.source.value === alias)
|
|
69
58
|
.find(j.ImportSpecifier, { imported: { name: componentName } })
|
|
70
|
-
.forEach(
|
|
71
|
-
j(path).replaceWith(
|
|
59
|
+
.forEach((path) => {
|
|
60
|
+
j(path).replaceWith((path) => {
|
|
72
61
|
if (path.node.local && path.node.local.name !== path.node.imported.name) {
|
|
73
62
|
needRename = false;
|
|
74
63
|
}
|
|
@@ -78,87 +67,89 @@ function transformer(file, api, options) {
|
|
|
78
67
|
// переименовываем без проблемные св-ва
|
|
79
68
|
source
|
|
80
69
|
.find(j.JSXOpeningElement)
|
|
81
|
-
.filter(
|
|
82
|
-
.find(j.JSXAttribute,
|
|
83
|
-
.forEach(
|
|
70
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
|
|
71
|
+
.find(j.JSXAttribute, (attribute) => attributeReplacer.has(attribute.name.name))
|
|
72
|
+
.forEach((attribute) => {
|
|
84
73
|
replaceAttribute(j, attributeReplacer, attribute);
|
|
85
74
|
});
|
|
86
|
-
source.findJSXElements(localName).forEach(
|
|
75
|
+
source.findJSXElements(localName).forEach((element) => {
|
|
87
76
|
// меняем название компонента в JSX на переименованный в импорте (если нужно)
|
|
88
|
-
j(element).replaceWith(
|
|
89
|
-
|
|
77
|
+
j(element).replaceWith((path) => {
|
|
78
|
+
const renamedLocalName = needRename ? componentNameTo : localName;
|
|
90
79
|
return j.jsxElement(j.jsxOpeningElement(j.jsxIdentifier(renamedLocalName), path.node.openingElement.attributes, path.node.closingElement ? false : true), path.node.closingElement ? j.jsxClosingElement(j.jsxIdentifier(renamedLocalName)) : null, path.node.children);
|
|
91
80
|
});
|
|
92
81
|
// разрешаем arrowOffsets
|
|
93
|
-
|
|
82
|
+
const [cornerOffsetAttr, cornerAbsoluteOffsetAttr] = [
|
|
94
83
|
j(element)
|
|
95
|
-
.find(j.JSXAttribute,
|
|
84
|
+
.find(j.JSXAttribute, (attribute) => attribute.name.name === CORNER_OFFSET.from)
|
|
96
85
|
.at(0),
|
|
97
86
|
j(element)
|
|
98
|
-
.find(j.JSXAttribute,
|
|
87
|
+
.find(j.JSXAttribute, (attribute) => attribute.name.name === CORNER_ABSOLUTE_OFFSET.from)
|
|
99
88
|
.at(0),
|
|
100
|
-
]
|
|
89
|
+
];
|
|
101
90
|
if (cornerOffsetAttr.length === 1 && cornerAbsoluteOffsetAttr.length === 0) {
|
|
102
|
-
cornerOffsetAttr.forEach(
|
|
91
|
+
cornerOffsetAttr.forEach((attribute) => {
|
|
103
92
|
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(CORNER_OFFSET.to), attribute.node.value));
|
|
104
93
|
});
|
|
105
94
|
}
|
|
106
95
|
else if (cornerOffsetAttr.length === 0 && cornerAbsoluteOffsetAttr.length === 1) {
|
|
107
|
-
|
|
108
|
-
cornerAbsoluteOffsetAttr.forEach(
|
|
109
|
-
|
|
96
|
+
let valueByCornerAbsolute;
|
|
97
|
+
cornerAbsoluteOffsetAttr.forEach((attribute) => {
|
|
98
|
+
valueByCornerAbsolute = attribute.node.value;
|
|
110
99
|
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(CORNER_ABSOLUTE_OFFSET.to)));
|
|
111
100
|
});
|
|
112
101
|
// добавляем новое св-во
|
|
113
|
-
|
|
114
|
-
element.node.openingElement.attributes =
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
const prevAttributes = element.node.openingElement.attributes || [];
|
|
103
|
+
element.node.openingElement.attributes = [
|
|
104
|
+
...prevAttributes,
|
|
105
|
+
j.jsxAttribute(j.jsxIdentifier(CORNER_OFFSET.to), valueByCornerAbsolute),
|
|
106
|
+
];
|
|
117
107
|
}
|
|
118
108
|
else if (cornerOffsetAttr.length === 1 && cornerAbsoluteOffsetAttr.length === 1) {
|
|
119
|
-
|
|
120
|
-
cornerAbsoluteOffsetAttr.forEach(
|
|
121
|
-
|
|
109
|
+
let valueByCornerAbsolute;
|
|
110
|
+
cornerAbsoluteOffsetAttr.forEach((attribute) => {
|
|
111
|
+
valueByCornerAbsolute = attribute.node.value;
|
|
122
112
|
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(CORNER_ABSOLUTE_OFFSET.to)));
|
|
123
113
|
});
|
|
124
|
-
cornerOffsetAttr.forEach(
|
|
125
|
-
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(CORNER_OFFSET.to),
|
|
114
|
+
cornerOffsetAttr.forEach((attribute) => {
|
|
115
|
+
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(CORNER_OFFSET.to), valueByCornerAbsolute));
|
|
126
116
|
});
|
|
127
117
|
}
|
|
128
118
|
// разрешаем alignX/alignY/placement
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
119
|
+
const placementAttr = j(element).find(j.JSXAttribute, (attribute) => attribute.name.name === PLACEMENT);
|
|
120
|
+
let alignX;
|
|
121
|
+
let alignY;
|
|
132
122
|
j(element)
|
|
133
|
-
.find(j.JSXAttribute,
|
|
134
|
-
.forEach(
|
|
123
|
+
.find(j.JSXAttribute, (attribute) => attribute.name.name === ALIGN_X.from)
|
|
124
|
+
.forEach((attribute) => {
|
|
135
125
|
alignX = attribute.node.value;
|
|
136
126
|
j(attribute).remove();
|
|
137
127
|
});
|
|
138
128
|
j(element)
|
|
139
|
-
.find(j.JSXAttribute,
|
|
140
|
-
.forEach(
|
|
129
|
+
.find(j.JSXAttribute, (attribute) => attribute.name.name === ALIGN_Y.from)
|
|
130
|
+
.forEach((attribute) => {
|
|
141
131
|
alignY = attribute.node.value;
|
|
142
132
|
j(attribute).remove();
|
|
143
133
|
});
|
|
144
134
|
if (placementAttr.length === 0) {
|
|
145
|
-
|
|
135
|
+
let placement;
|
|
146
136
|
if (isStringLiteral(alignX) && !isStringLiteral(alignY)) {
|
|
147
|
-
|
|
148
|
-
placement =
|
|
137
|
+
const convertedAlignX = mapAlignX(alignX.value);
|
|
138
|
+
placement = `bottom-${convertedAlignX}`;
|
|
149
139
|
}
|
|
150
140
|
else if (!isStringLiteral(alignX) && isStringLiteral(alignY)) {
|
|
151
|
-
placement =
|
|
141
|
+
placement = `${alignY.value}-start`;
|
|
152
142
|
}
|
|
153
143
|
else if (isStringLiteral(alignX) && isStringLiteral(alignY)) {
|
|
154
|
-
|
|
155
|
-
placement =
|
|
144
|
+
const convertedAlignX = mapAlignX(alignX.value);
|
|
145
|
+
placement = `${alignY.value}-${convertedAlignX}`;
|
|
156
146
|
}
|
|
157
147
|
if (placement) {
|
|
158
|
-
|
|
159
|
-
element.node.openingElement.attributes =
|
|
148
|
+
const prevAttributes = element.node.openingElement.attributes || [];
|
|
149
|
+
element.node.openingElement.attributes = [
|
|
150
|
+
...prevAttributes,
|
|
160
151
|
j.jsxAttribute(j.jsxIdentifier(PLACEMENT), j.stringLiteral(placement)),
|
|
161
|
-
]
|
|
152
|
+
];
|
|
162
153
|
}
|
|
163
154
|
}
|
|
164
155
|
});
|
|
@@ -5,28 +5,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parser = void 0;
|
|
7
7
|
exports.default = transformer;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
10
|
+
const report_1 = require("../../report");
|
|
11
11
|
exports.parser = 'tsx';
|
|
12
12
|
function transformer(file, api, options) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const { alias } = options;
|
|
14
|
+
const j = api.jscodeshift;
|
|
15
|
+
const source = j(file.source);
|
|
16
|
+
const componentLocalNames = ['Title', 'Headline', 'Subhead'].map((name) => {
|
|
17
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, name, alias);
|
|
18
18
|
return localName;
|
|
19
19
|
});
|
|
20
20
|
source
|
|
21
21
|
.find(j.JSXOpeningElement)
|
|
22
|
-
.filter(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.forEach(function (path) {
|
|
27
|
-
var componentAttribute = j(path).find(j.JSXAttribute, { name: { name: 'Component' } });
|
|
22
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' &&
|
|
23
|
+
componentLocalNames.includes(path.value.name.name))
|
|
24
|
+
.forEach((path) => {
|
|
25
|
+
const componentAttribute = j(path).find(j.JSXAttribute, { name: { name: 'Component' } });
|
|
28
26
|
if (componentAttribute.length > 0) {
|
|
29
|
-
|
|
27
|
+
const componentValue = componentAttribute.get('value');
|
|
30
28
|
if (componentValue.value &&
|
|
31
29
|
(componentValue.value.type === 'StringLiteral' ||
|
|
32
30
|
componentValue.value.type === 'Literal') &&
|
|
@@ -35,8 +33,8 @@ function transformer(file, api, options) {
|
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
else {
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
let newValue;
|
|
37
|
+
const componentName = path.node.name.type === 'JSXIdentifier' && path.node.name.name;
|
|
40
38
|
switch (componentName) {
|
|
41
39
|
case componentLocalNames[1]:
|
|
42
40
|
newValue = 'h4';
|
|
@@ -45,18 +43,18 @@ function transformer(file, api, options) {
|
|
|
45
43
|
newValue = 'h5';
|
|
46
44
|
break;
|
|
47
45
|
case componentLocalNames[0]:
|
|
48
|
-
|
|
46
|
+
const levelAttribute = j(path).find(j.JSXAttribute, { name: { name: 'level' } });
|
|
49
47
|
if (levelAttribute.length === 0) {
|
|
50
48
|
newValue = 'h1';
|
|
51
49
|
}
|
|
52
50
|
else {
|
|
53
|
-
|
|
51
|
+
const att = levelAttribute.get(0);
|
|
54
52
|
if (att.node.value &&
|
|
55
53
|
(att.node.value.type === 'StringLiteral' || att.node.value.type === 'Literal')) {
|
|
56
|
-
newValue =
|
|
54
|
+
newValue = `h${att.node.value.value}`;
|
|
57
55
|
}
|
|
58
56
|
else {
|
|
59
|
-
(0, report_1.report)(api,
|
|
57
|
+
(0, report_1.report)(api, `: prop ${chalk_1.default.white.bgBlue('Component')} has been changed in ${chalk_1.default.white.bgBlue(componentLocalNames)} component. Manual changes required.`);
|
|
60
58
|
}
|
|
61
59
|
}
|
|
62
60
|
break;
|
|
@@ -5,31 +5,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parser = void 0;
|
|
7
7
|
exports.default = transformer;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
10
|
+
const report_1 = require("../../report");
|
|
11
11
|
exports.parser = 'tsx';
|
|
12
12
|
function transformer(file, api, options) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const { alias } = options;
|
|
14
|
+
const j = api.jscodeshift;
|
|
15
|
+
const source = j(file.source);
|
|
16
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'UsersStack', alias);
|
|
17
17
|
if (!localName) {
|
|
18
18
|
return source.toSource();
|
|
19
19
|
}
|
|
20
20
|
source
|
|
21
21
|
.find(j.JSXOpeningElement)
|
|
22
|
-
.filter(
|
|
22
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
|
|
23
23
|
.find(j.JSXAttribute)
|
|
24
|
-
.filter(
|
|
25
|
-
.forEach(
|
|
26
|
-
|
|
24
|
+
.filter((attribute) => attribute.node.name.name === 'layout')
|
|
25
|
+
.forEach((attribute) => {
|
|
26
|
+
const node = attribute.node;
|
|
27
27
|
if (node.value && node.value.type === 'StringLiteral') {
|
|
28
|
-
|
|
28
|
+
const newValue = node.value.value === 'vertical' ? 'column' : 'row';
|
|
29
29
|
j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier('direction'), j.stringLiteral(newValue)));
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
(0, report_1.report)(api,
|
|
32
|
+
(0, report_1.report)(api, `: ${chalk_1.default.white.bgBlue('layout')} prop in ${chalk_1.default.white.bgBlue('UsersStack')} component is no longer available. Manual changes required.`);
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
return source.toSource();
|
|
@@ -1,47 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.parser = void 0;
|
|
13
4
|
exports.default = transformer;
|
|
14
5
|
exports.parser = 'tsx';
|
|
15
6
|
function transformer(file, api, options) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
const { alias } = options;
|
|
8
|
+
const j = api.jscodeshift;
|
|
9
|
+
const source = j(file.source);
|
|
10
|
+
let localImportName = 'VisuallyHiddenInput';
|
|
11
|
+
let needRename = true;
|
|
12
|
+
const componentImport = source
|
|
22
13
|
.find(j.ImportDeclaration)
|
|
23
|
-
.filter(
|
|
14
|
+
.filter((path) => path.node.source.value === alias)
|
|
24
15
|
.find(j.ImportSpecifier)
|
|
25
|
-
.filter(
|
|
16
|
+
.filter((path) => path.node.imported.name === 'VisuallyHiddenInput')
|
|
26
17
|
.at(0);
|
|
27
18
|
if (componentImport.length === 0) {
|
|
28
19
|
return source.toSource();
|
|
29
20
|
}
|
|
30
|
-
componentImport.forEach(
|
|
21
|
+
componentImport.forEach((path) => {
|
|
31
22
|
if (path.node.local &&
|
|
32
23
|
path.node.local.name !== path.node.imported.name &&
|
|
33
24
|
typeof path.node.local.name === 'string') {
|
|
34
25
|
localImportName = path.node.local.name;
|
|
35
26
|
needRename = false;
|
|
36
27
|
}
|
|
37
|
-
j(path).replaceWith(
|
|
38
|
-
return j.importSpecifier(j.identifier('VisuallyHidden'), needRename ? null : path.node.local);
|
|
39
|
-
});
|
|
28
|
+
j(path).replaceWith((path) => j.importSpecifier(j.identifier('VisuallyHidden'), needRename ? null : path.node.local));
|
|
40
29
|
});
|
|
41
|
-
source.findJSXElements(localImportName).replaceWith(
|
|
30
|
+
source.findJSXElements(localImportName).replaceWith((path) => {
|
|
42
31
|
localImportName = needRename ? 'VisuallyHidden' : localImportName;
|
|
43
|
-
|
|
44
|
-
return j.jsxElement(j.jsxOpeningElement(j.jsxIdentifier(localImportName),
|
|
32
|
+
const props = path.node.openingElement.attributes;
|
|
33
|
+
return j.jsxElement(j.jsxOpeningElement(j.jsxIdentifier(localImportName), [j.jsxAttribute(j.jsxIdentifier('Component'), j.stringLiteral('input')), ...(props || [])], path.node.closingElement ? false : true), path.node.closingElement ? j.jsxClosingElement(j.jsxIdentifier(localImportName)) : null, path.node.children);
|
|
45
34
|
});
|
|
46
35
|
return source.toSource();
|
|
47
36
|
}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
6
|
exports.parser = 'tsx';
|
|
7
7
|
function transformer(file, api, options) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const { alias } = options;
|
|
9
|
+
const j = api.jscodeshift;
|
|
10
|
+
const source = j(file.source);
|
|
11
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'ActionSheet', alias);
|
|
12
12
|
if (localName) {
|
|
13
13
|
(0, codemod_helpers_1.renameProp)(j, source, localName, { header: 'title', text: 'description' });
|
|
14
14
|
}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
6
|
exports.parser = 'tsx';
|
|
7
7
|
function transformer(file, api, options) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const { alias } = options;
|
|
9
|
+
const j = api.jscodeshift;
|
|
10
|
+
const source = j(file.source);
|
|
11
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'Alert', alias);
|
|
12
12
|
if (localName) {
|
|
13
13
|
(0, codemod_helpers_1.renameProp)(j, source, localName, { header: 'title', text: 'description' });
|
|
14
14
|
}
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
6
|
exports.parser = 'tsx';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const OLD_PROVIDER_NAME = 'AppearanceProvider';
|
|
8
|
+
const OLD_PROVIDER_PROPS_NAME = 'AppearanceProviderProps';
|
|
9
|
+
const NEW_PROVIDER_NAME = 'ColorSchemeProvider';
|
|
10
|
+
const NEW_PROVIDER_PROPS_NAME = 'ColorSchemeProviderProps';
|
|
11
11
|
function transformer(file, api, options) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
const { alias } = options;
|
|
13
|
+
const j = api.jscodeshift;
|
|
14
|
+
const source = j(file.source);
|
|
15
|
+
const { localName: providerLocalName } = (0, codemod_helpers_1.getImportInfo)(j, file, OLD_PROVIDER_NAME, alias);
|
|
16
|
+
const { localName: providerPropsLocalName } = (0, codemod_helpers_1.getImportInfo)(j, file, OLD_PROVIDER_PROPS_NAME, alias);
|
|
17
17
|
if (!providerLocalName && !providerPropsLocalName) {
|
|
18
18
|
return source.toSource();
|
|
19
19
|
}
|
|
20
20
|
if (providerLocalName) {
|
|
21
|
-
|
|
21
|
+
const isAliasUsed = providerLocalName !== OLD_PROVIDER_NAME;
|
|
22
22
|
(0, codemod_helpers_1.renameImportName)(j, source, providerLocalName, NEW_PROVIDER_NAME, alias, isAliasUsed);
|
|
23
23
|
if (!isAliasUsed) {
|
|
24
24
|
(0, codemod_helpers_1.renameIdentifier)(j, source, providerLocalName, NEW_PROVIDER_NAME);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
if (providerPropsLocalName) {
|
|
28
|
-
|
|
28
|
+
const isAliasUsed = providerPropsLocalName !== OLD_PROVIDER_PROPS_NAME;
|
|
29
29
|
(0, codemod_helpers_1.renameImportName)(j, source, providerPropsLocalName, NEW_PROVIDER_PROPS_NAME, alias, isAliasUsed);
|
|
30
30
|
if (!isAliasUsed) {
|
|
31
31
|
(0, codemod_helpers_1.renameTypeIdentifier)(j, source, providerPropsLocalName, NEW_PROVIDER_PROPS_NAME);
|
|
@@ -2,40 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
6
|
exports.parser = 'tsx';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const OLD_APPEARANCE_NAME = 'Appearance';
|
|
8
|
+
const OLD_APPEARANCE_TYPE_NAME = 'AppearanceType';
|
|
9
|
+
const OLD_HOOK_APPEARANCE_NAME = 'useAppearance';
|
|
10
|
+
const NEW_APPEARANCE_NAME = 'ColorScheme';
|
|
11
|
+
const NEW_APPEARANCE_TYPE_NAME = 'ColorSchemeType';
|
|
12
|
+
const NEW_HOOK_APPEARANCE_NAME = 'useColorScheme';
|
|
13
13
|
function transformer(file, api, options) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const { alias } = options;
|
|
15
|
+
const j = api.jscodeshift;
|
|
16
|
+
const source = j(file.source);
|
|
17
|
+
const { localName: appearanceLocalName } = (0, codemod_helpers_1.getImportInfo)(j, file, OLD_APPEARANCE_NAME, alias);
|
|
18
|
+
const { localName: appearanceTypeLocalName } = (0, codemod_helpers_1.getImportInfo)(j, file, OLD_APPEARANCE_TYPE_NAME, alias);
|
|
19
|
+
const { localName: useAppearanceLocalName } = (0, codemod_helpers_1.getImportInfo)(j, file, OLD_HOOK_APPEARANCE_NAME, alias);
|
|
20
20
|
if (!appearanceLocalName && !appearanceTypeLocalName && !useAppearanceLocalName) {
|
|
21
21
|
return source.toSource();
|
|
22
22
|
}
|
|
23
23
|
if (appearanceLocalName) {
|
|
24
|
-
|
|
24
|
+
const isAliasUsed = appearanceLocalName !== OLD_APPEARANCE_NAME;
|
|
25
25
|
(0, codemod_helpers_1.renameImportName)(j, source, appearanceLocalName, NEW_APPEARANCE_NAME, alias, isAliasUsed);
|
|
26
26
|
if (!isAliasUsed) {
|
|
27
27
|
(0, codemod_helpers_1.renameIdentifier)(j, source, appearanceLocalName, NEW_APPEARANCE_NAME);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
if (appearanceTypeLocalName) {
|
|
31
|
-
|
|
31
|
+
const isAliasUsed = appearanceTypeLocalName !== OLD_APPEARANCE_TYPE_NAME;
|
|
32
32
|
(0, codemod_helpers_1.renameImportName)(j, source, appearanceTypeLocalName, NEW_APPEARANCE_TYPE_NAME, alias, isAliasUsed);
|
|
33
33
|
if (!isAliasUsed) {
|
|
34
34
|
(0, codemod_helpers_1.renameTypeIdentifier)(j, source, appearanceTypeLocalName, NEW_APPEARANCE_TYPE_NAME);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
if (useAppearanceLocalName) {
|
|
38
|
-
|
|
38
|
+
const isAliasUsed = useAppearanceLocalName !== OLD_HOOK_APPEARANCE_NAME;
|
|
39
39
|
(0, codemod_helpers_1.renameImportName)(j, source, useAppearanceLocalName, NEW_HOOK_APPEARANCE_NAME, alias, isAliasUsed);
|
|
40
40
|
if (!isAliasUsed) {
|
|
41
41
|
(0, codemod_helpers_1.renameIdentifier)(j, source, useAppearanceLocalName, NEW_HOOK_APPEARANCE_NAME);
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
|
+
const report_1 = require("../../report");
|
|
7
7
|
exports.parser = 'tsx';
|
|
8
8
|
function transformer(file, api, options) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const { alias } = options;
|
|
10
|
+
const j = api.jscodeshift;
|
|
11
|
+
const source = j(file.source);
|
|
12
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'Banner', alias);
|
|
13
13
|
if (!localName) {
|
|
14
14
|
return source.toSource();
|
|
15
15
|
}
|
|
@@ -21,19 +21,18 @@ function transformer(file, api, options) {
|
|
|
21
21
|
});
|
|
22
22
|
source
|
|
23
23
|
.find(j.JSXOpeningElement)
|
|
24
|
-
.filter(
|
|
24
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
|
|
25
25
|
.find(j.JSXAttribute)
|
|
26
|
-
.filter(
|
|
27
|
-
.forEach(
|
|
28
|
-
|
|
29
|
-
if (((_a = attribute.node.value) === null || _a === void 0 ? void 0 : _a.type) === 'StringLiteral') {
|
|
26
|
+
.filter((attribute) => attribute.node.name.name === 'after')
|
|
27
|
+
.forEach((attribute) => {
|
|
28
|
+
if (attribute.node.value?.type === 'StringLiteral') {
|
|
30
29
|
if (attribute.node.value.value === 'expand') {
|
|
31
30
|
attribute.node.value.value = 'chevron';
|
|
32
31
|
}
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
35
|
-
if (
|
|
36
|
-
|
|
34
|
+
if (attribute.node.value?.type === 'JSXExpressionContainer') {
|
|
35
|
+
const expression = attribute.node.value.expression;
|
|
37
36
|
if (expression.type === 'StringLiteral') {
|
|
38
37
|
if (expression.value === 'expand') {
|
|
39
38
|
expression.value = 'chevron';
|
|
@@ -41,7 +40,7 @@ function transformer(file, api, options) {
|
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
(0, report_1.report)(api,
|
|
43
|
+
(0, report_1.report)(api, `Manual changes required for ${localName}'s "after" (previously "asideMode") prop. Need to change "expand" value to "chevron".`);
|
|
45
44
|
});
|
|
46
45
|
return source.toSource();
|
|
47
46
|
}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parser = void 0;
|
|
4
4
|
exports.default = transformer;
|
|
5
|
-
|
|
5
|
+
const codemod_helpers_1 = require("../../codemod-helpers");
|
|
6
6
|
exports.parser = 'tsx';
|
|
7
7
|
function transformer(file, api, options) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const { alias } = options;
|
|
9
|
+
const j = api.jscodeshift;
|
|
10
|
+
const source = j(file.source);
|
|
11
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'Calendar', alias);
|
|
12
12
|
if (!localName) {
|
|
13
13
|
return source.toSource();
|
|
14
14
|
}
|