@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
package/dist/index.js
CHANGED
|
@@ -1,186 +1,115 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
13
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
14
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
15
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
16
|
-
function step(op) {
|
|
17
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
18
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
19
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
20
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
21
|
-
switch (op[0]) {
|
|
22
|
-
case 0: case 1: t = op; break;
|
|
23
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
24
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
25
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
26
|
-
default:
|
|
27
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
28
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
29
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
30
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
31
|
-
if (t[2]) _.ops.pop();
|
|
32
|
-
_.trys.pop(); continue;
|
|
33
|
-
}
|
|
34
|
-
op = body.call(thisArg, _);
|
|
35
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
36
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
40
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
41
|
-
if (ar || !(i in from)) {
|
|
42
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
43
|
-
ar[i] = from[i];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
47
|
-
};
|
|
48
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
5
|
};
|
|
51
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
function runJSCodeShift(
|
|
62
|
-
|
|
63
|
-
var args = ['--parser=tsx', '--extensions=tsx,ts', "--alias=".concat(flags.alias)];
|
|
7
|
+
const node_events_1 = require("node:events");
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const cross_spawn_1 = require("cross-spawn");
|
|
11
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
12
|
+
const cli_js_1 = require("./cli.js");
|
|
13
|
+
const getAvailableCodemods_js_1 = require("./getAvailableCodemods.js");
|
|
14
|
+
const logger_js_1 = __importDefault(require("./helpers/logger.js"));
|
|
15
|
+
const MAX_PRINTED_PATHS = 5;
|
|
16
|
+
function runJSCodeShift({ codemodName, transformsVersion, paths, flags, logStream, }) {
|
|
17
|
+
const args = ['--parser=tsx', '--extensions=tsx,ts', `--alias=${flags.alias}`];
|
|
64
18
|
if (flags.dryRun) {
|
|
65
19
|
args.push('--dry');
|
|
66
20
|
}
|
|
67
21
|
if (flags.ignoreConfig) {
|
|
68
|
-
args.push(
|
|
22
|
+
args.push(`--ignore-config=${flags.ignoreConfig}`);
|
|
69
23
|
}
|
|
70
24
|
if (!flags.debug) {
|
|
71
25
|
args.push('--silent');
|
|
72
26
|
}
|
|
73
|
-
|
|
27
|
+
const result = (0, cross_spawn_1.sync)('node', [
|
|
74
28
|
require.resolve('jscodeshift/bin/jscodeshift'),
|
|
75
29
|
'--no-babel',
|
|
76
30
|
'--fail-on-error',
|
|
77
31
|
'-t',
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
'--ignore-pattern node_modules'
|
|
81
|
-
|
|
82
|
-
|
|
32
|
+
`${getAvailableCodemods_js_1.TRANSFORM_DIR}/v${transformsVersion}/${codemodName}.js`,
|
|
33
|
+
...args,
|
|
34
|
+
'--ignore-pattern node_modules',
|
|
35
|
+
...(flags.inputFile ? [`--stdin < ${flags.inputFile}`] : paths),
|
|
36
|
+
], {
|
|
37
|
+
stdio: ['inherit', logStream ?? 'inherit', 'inherit'],
|
|
83
38
|
shell: true,
|
|
84
39
|
});
|
|
85
40
|
if (result.status === 1) {
|
|
86
|
-
logger_js_1.default.error(
|
|
41
|
+
logger_js_1.default.error(`Codemod ${codemodName} failed to apply.`);
|
|
87
42
|
return;
|
|
88
43
|
}
|
|
89
44
|
}
|
|
90
|
-
function promptConfirmation() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}, {
|
|
103
|
-
onCancel: function () {
|
|
104
|
-
process.exit(1);
|
|
105
|
-
},
|
|
106
|
-
})];
|
|
107
|
-
case 1:
|
|
108
|
-
confirmation = (_a.sent()).confirmation;
|
|
109
|
-
return [2 /*return*/, confirmation];
|
|
110
|
-
}
|
|
111
|
-
});
|
|
45
|
+
async function promptConfirmation() {
|
|
46
|
+
const { confirmation } = await (0, prompts_1.default)({
|
|
47
|
+
type: 'toggle',
|
|
48
|
+
name: 'confirmation',
|
|
49
|
+
message: `Would you like to continue?`,
|
|
50
|
+
initial: true,
|
|
51
|
+
active: 'Yes',
|
|
52
|
+
inactive: 'No',
|
|
53
|
+
}, {
|
|
54
|
+
onCancel: () => {
|
|
55
|
+
process.exit(1);
|
|
56
|
+
},
|
|
112
57
|
});
|
|
58
|
+
return confirmation;
|
|
113
59
|
}
|
|
114
60
|
function getWorkingPathsInfo(paths, inputFile) {
|
|
115
61
|
if (inputFile) {
|
|
116
|
-
return
|
|
62
|
+
return `from ${inputFile}`;
|
|
117
63
|
}
|
|
118
64
|
if (paths.length > MAX_PRINTED_PATHS) {
|
|
119
|
-
return
|
|
65
|
+
return `${paths.slice(0, MAX_PRINTED_PATHS).join(', ')} and ${paths.length - MAX_PRINTED_PATHS} more`;
|
|
120
66
|
}
|
|
121
67
|
return paths.join(', ');
|
|
122
68
|
}
|
|
123
|
-
function verifyConfiguration(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (!confirmed) {
|
|
136
|
-
logger_js_1.default.info('Exiting without changes...');
|
|
137
|
-
process.exit(0);
|
|
138
|
-
}
|
|
139
|
-
return [2 /*return*/];
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
69
|
+
async function verifyConfiguration({ paths, inputFile, codemodNames, transformsVersion, }) {
|
|
70
|
+
const formattedPaths = getWorkingPathsInfo(paths, inputFile);
|
|
71
|
+
logger_js_1.default.info(`Please ${chalk_1.default.cyan('verify')} the following information:
|
|
72
|
+
working files/directories: ${formattedPaths}
|
|
73
|
+
target vkui major version: ${transformsVersion}
|
|
74
|
+
codemods to apply: ${codemodNames ? codemodNames : chalk_1.default.red('all')}
|
|
75
|
+
`);
|
|
76
|
+
const confirmed = await promptConfirmation();
|
|
77
|
+
if (!confirmed) {
|
|
78
|
+
logger_js_1.default.info('Exiting without changes...');
|
|
79
|
+
process.exit(0);
|
|
80
|
+
}
|
|
143
81
|
}
|
|
144
|
-
|
|
82
|
+
const run = async () => {
|
|
83
|
+
const { flags, codemods, transformsVersion } = await (0, cli_js_1.runCli)();
|
|
84
|
+
const paths = flags.path ? flags.path : [process.cwd()];
|
|
85
|
+
await verifyConfiguration({
|
|
86
|
+
paths,
|
|
87
|
+
inputFile: flags.inputFile,
|
|
88
|
+
transformsVersion,
|
|
89
|
+
codemodNames: flags.all ? undefined : codemods,
|
|
90
|
+
});
|
|
91
|
+
logger_js_1.default.info("\n 🚀 Let's go!");
|
|
145
92
|
function applyCodemods(logStream) {
|
|
146
|
-
codemods.forEach(
|
|
147
|
-
logger_js_1.default.info(
|
|
148
|
-
runJSCodeShift({ codemodName
|
|
93
|
+
codemods.forEach((codemodName) => {
|
|
94
|
+
logger_js_1.default.info(`Codemod ${codemodName} in process...`);
|
|
95
|
+
runJSCodeShift({ codemodName, transformsVersion, paths, flags, logStream });
|
|
149
96
|
});
|
|
150
97
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (!flags.logFile) return [3 /*break*/, 4];
|
|
168
|
-
logStream = fs_1.default.createWriteStream(flags.logFile, { flags: 'a' });
|
|
169
|
-
return [4 /*yield*/, (0, node_events_1.once)(logStream, 'open')];
|
|
170
|
-
case 3:
|
|
171
|
-
_b.sent();
|
|
172
|
-
applyCodemods(logStream);
|
|
173
|
-
logStream.end();
|
|
174
|
-
return [3 /*break*/, 5];
|
|
175
|
-
case 4:
|
|
176
|
-
applyCodemods();
|
|
177
|
-
_b.label = 5;
|
|
178
|
-
case 5:
|
|
179
|
-
logger_js_1.default.info("\n All done! Please check that everything is applied correctly.\n If it's not the case - feel free to contact VKUI Team.\n Do not forget to run ".concat(chalk_1.default.cyan.bold('prettier'), " to eliminate unwanted code formatting after applying migrations.\n Happy coding with ").concat(chalk_1.default.green.bold("v".concat(transformsVersion)), "!"));
|
|
180
|
-
return [2 /*return*/];
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}); };
|
|
184
|
-
run().catch(function (error) {
|
|
98
|
+
if (flags.logFile) {
|
|
99
|
+
const logStream = node_fs_1.default.createWriteStream(flags.logFile, { flags: 'a' });
|
|
100
|
+
await (0, node_events_1.once)(logStream, 'open');
|
|
101
|
+
applyCodemods(logStream);
|
|
102
|
+
logStream.end();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
applyCodemods();
|
|
106
|
+
}
|
|
107
|
+
logger_js_1.default.info(`
|
|
108
|
+
All done! Please check that everything is applied correctly.
|
|
109
|
+
If it's not the case - feel free to contact VKUI Team.
|
|
110
|
+
Do not forget to run ${chalk_1.default.cyan.bold('prettier')} to eliminate unwanted code formatting after applying migrations.
|
|
111
|
+
Happy coding with ${chalk_1.default.green.bold(`v${transformsVersion}`)}!`);
|
|
112
|
+
};
|
|
113
|
+
run().catch((error) => {
|
|
185
114
|
logger_js_1.default.error(error);
|
|
186
115
|
});
|
package/dist/report.js
CHANGED
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.report = report;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
9
9
|
function report(api, message) {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const { report } = api;
|
|
11
|
+
const finalMessage = `${message} Advise ${chalk_1.default.white.bgBlue.bold('migration guide')} - ${package_json_1.default.homepage}#/Migrations \n\n`;
|
|
12
12
|
try {
|
|
13
13
|
report(finalMessage);
|
|
14
14
|
}
|
|
@@ -1,76 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
-
function step(op) {
|
|
49
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
-
switch (op[0]) {
|
|
54
|
-
case 0: case 1: t = op; break;
|
|
55
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
-
default:
|
|
59
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
-
if (t[2]) _.ops.pop();
|
|
64
|
-
_.trys.pop(); continue;
|
|
65
|
-
}
|
|
66
|
-
op = body.call(thisArg, _);
|
|
67
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
4
|
};
|
|
5
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
6
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
7
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
8
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return path;
|
|
12
|
+
};
|
|
74
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
14
|
exports.applyTransform = void 0;
|
|
76
15
|
exports.getTestFixturesInputPath = getTestFixturesInputPath;
|
|
@@ -78,29 +17,19 @@ exports.defineSnapshotTestFromFixture = defineSnapshotTestFromFixture;
|
|
|
78
17
|
/**
|
|
79
18
|
* Файл для упрощенной работы с дефолтными функциями запуска `jscodeshift`
|
|
80
19
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
20
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
21
|
+
const testUtils_1 = require("jscodeshift/dist/testUtils");
|
|
83
22
|
Object.defineProperty(exports, "applyTransform", { enumerable: true, get: function () { return testUtils_1.applyTransform; } });
|
|
84
|
-
function getTestFixturesInputPath(dirName, testFilePrefix, extension) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return path_1.default.join(fixtureDir, testFilePrefix + ".input.".concat(extension));
|
|
23
|
+
function getTestFixturesInputPath(dirName, testFilePrefix, extension = 'tsx') {
|
|
24
|
+
const fixtureDir = node_path_1.default.join(dirName, '..', '__testfixtures__');
|
|
25
|
+
return node_path_1.default.join(fixtureDir, testFilePrefix + `.input.${extension}`);
|
|
88
26
|
}
|
|
89
27
|
/**
|
|
90
28
|
* У оригинального defineSnapshotTestFromFixture нет типов
|
|
91
29
|
* Избавляемся от необходимости в тестах постоянно указывать `module`
|
|
92
30
|
*/
|
|
93
|
-
function defineSnapshotTestFromFixture(dirName, transformName, options, testFilePrefix) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
switch (_a.label) {
|
|
98
|
-
case 0: return [4 /*yield*/, Promise.resolve("".concat(path_1.default.join(dirName, '..', transformName) + '.ts')).then(function (s) { return __importStar(require(s)); })];
|
|
99
|
-
case 1:
|
|
100
|
-
module = _a.sent();
|
|
101
|
-
(0, testUtils_1.defineSnapshotTestFromFixture)(dirName, module, options, testFilePrefix, 'transforms correctly', { parser: 'tsx' });
|
|
102
|
-
return [2 /*return*/];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
});
|
|
31
|
+
async function defineSnapshotTestFromFixture(dirName, transformName, options, testFilePrefix) {
|
|
32
|
+
// Assumes transform is one level up from __tests__ directory
|
|
33
|
+
const module = await import(__rewriteRelativeImportExtension(node_path_1.default.join(dirName, '..', transformName) + '.ts'));
|
|
34
|
+
(0, testUtils_1.defineSnapshotTestFromFixture)(dirName, module, options, testFilePrefix, 'transforms correctly', { parser: 'tsx' });
|
|
106
35
|
}
|
|
@@ -5,24 +5,24 @@ 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, 'Accordion', alias);
|
|
17
17
|
if (!localName) {
|
|
18
18
|
return source.toSource();
|
|
19
19
|
}
|
|
20
20
|
(0, codemod_helpers_1.renameProp)(j, source, localName, { open: 'expanded' });
|
|
21
|
-
|
|
21
|
+
const accordionComponents = source
|
|
22
22
|
.find(j.JSXOpeningElement)
|
|
23
|
-
.filter(
|
|
23
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName);
|
|
24
24
|
if (accordionComponents.length > 0) {
|
|
25
|
-
(0, report_1.report)(api,
|
|
25
|
+
(0, report_1.report)(api, `: ${chalk_1.default.white.bgBlue('Accordion')} has been changed. Manual changes required.`);
|
|
26
26
|
}
|
|
27
27
|
return source.toSource();
|
|
28
28
|
}
|
|
@@ -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, 'ActionSheetItem', alias);
|
|
12
12
|
if (localName) {
|
|
13
13
|
(0, codemod_helpers_1.swapBooleanValue)(api, source, localName, 'autoClose', 'autoCloseDisabled');
|
|
14
14
|
}
|
|
@@ -5,26 +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
|
-
|
|
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, 'ActionSheet', alias);
|
|
17
17
|
if (!localName) {
|
|
18
18
|
return source.toSource();
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
const openingTargetElements = source
|
|
21
21
|
.find(j.JSXOpeningElement)
|
|
22
|
-
.filter(
|
|
23
|
-
openingTargetElements.forEach(
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName);
|
|
23
|
+
openingTargetElements.forEach((path) => {
|
|
24
|
+
const attributes = path.value.attributes;
|
|
25
|
+
let noRequiredProp = true;
|
|
26
26
|
if (attributes) {
|
|
27
|
-
attributes.forEach(
|
|
27
|
+
attributes.forEach((attr) => {
|
|
28
28
|
if (attr.type === 'JSXAttribute') {
|
|
29
29
|
if (attr.name.name === 'toggleRef') {
|
|
30
30
|
noRequiredProp = false;
|
|
@@ -34,14 +34,14 @@ function transformer(file, api, options) {
|
|
|
34
34
|
attr.name.name = 'placement';
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
(0, report_1.report)(api,
|
|
37
|
+
(0, report_1.report)(api, `: prop ${chalk_1.default.white.bgBlue('popupDirection')} in ${chalk_1.default.white.bgBlue('ActionSheet')} must be replaced manually.`);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
if (noRequiredProp) {
|
|
44
|
-
(0, report_1.report)(api,
|
|
44
|
+
(0, report_1.report)(api, `: prop ${chalk_1.default.white.bgBlue('toggleRef')} in ${chalk_1.default.white.bgBlue('ActionSheet')} is required.`);
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
return source.toSource();
|
|
@@ -2,16 +2,16 @@
|
|
|
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 replaceInArrayExpression(j, path) {
|
|
8
8
|
j(path)
|
|
9
9
|
.find(j.ArrayExpression)
|
|
10
10
|
.find(j.ObjectExpression)
|
|
11
11
|
.find(j.ObjectProperty)
|
|
12
|
-
.filter(
|
|
13
|
-
.forEach(
|
|
14
|
-
|
|
12
|
+
.filter((path) => path.value.key.type === 'Identifier' && path.value.key.name === 'autoClose')
|
|
13
|
+
.forEach((property) => {
|
|
14
|
+
const propertyValue = property.value;
|
|
15
15
|
if (propertyValue.value.type === 'BooleanLiteral') {
|
|
16
16
|
if (propertyValue.value.value) {
|
|
17
17
|
j(property).remove();
|
|
@@ -23,25 +23,25 @@ function replaceInArrayExpression(j, path) {
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
function transformer(file, api, options) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const { alias } = options;
|
|
27
|
+
const j = api.jscodeshift;
|
|
28
|
+
const source = j(file.source);
|
|
29
|
+
const { localName } = (0, codemod_helpers_1.getImportInfo)(j, file, 'Alert', alias);
|
|
30
30
|
if (!localName) {
|
|
31
31
|
return source.toSource();
|
|
32
32
|
}
|
|
33
33
|
source
|
|
34
34
|
.find(j.JSXOpeningElement)
|
|
35
|
-
.filter(
|
|
35
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
|
|
36
36
|
.find(j.JSXAttribute)
|
|
37
|
-
.filter(
|
|
38
|
-
.forEach(
|
|
39
|
-
|
|
37
|
+
.filter((attribute) => attribute.node.name.name === 'actions')
|
|
38
|
+
.forEach((attribute) => {
|
|
39
|
+
const node = attribute.node.value;
|
|
40
40
|
if (node && node.type === 'JSXExpressionContainer') {
|
|
41
41
|
replaceInArrayExpression(j, attribute);
|
|
42
42
|
if (node.expression.type === 'Identifier') {
|
|
43
|
-
|
|
44
|
-
decl.forEach(
|
|
43
|
+
const decl = source.findVariableDeclarators(node.expression.name);
|
|
44
|
+
decl.forEach((path) => {
|
|
45
45
|
replaceInArrayExpression(j, path);
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -2,23 +2,21 @@
|
|
|
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, 'AppearanceProvider', alias);
|
|
12
12
|
if (!localName) {
|
|
13
13
|
return source.toSource();
|
|
14
14
|
}
|
|
15
15
|
source
|
|
16
16
|
.find(j.JSXOpeningElement)
|
|
17
|
-
.filter(
|
|
17
|
+
.filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
|
|
18
18
|
.find(j.JSXAttribute)
|
|
19
|
-
.filter(
|
|
20
|
-
.forEach(
|
|
21
|
-
return j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier('value'), attribute.node.value));
|
|
22
|
-
});
|
|
19
|
+
.filter((attribute) => attribute.node.name.name === 'appearance')
|
|
20
|
+
.forEach((attribute) => j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier('value'), attribute.node.value)));
|
|
23
21
|
return source.toSource();
|
|
24
22
|
}
|