@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.
Files changed (132) hide show
  1. package/dist/autoDetectVKUIVersion.js +16 -24
  2. package/dist/cli.js +97 -160
  3. package/dist/codemod-helpers.js +41 -43
  4. package/dist/getAvailableCodemods.js +13 -14
  5. package/dist/helpers/logger.js +17 -17
  6. package/dist/index.js +76 -147
  7. package/dist/report.js +4 -4
  8. package/dist/testHelpers/testHelper.js +17 -88
  9. package/dist/transforms/v6/accordion.js +10 -10
  10. package/dist/transforms/v6/action-sheet-item.js +5 -5
  11. package/dist/transforms/v6/action-sheet.js +15 -15
  12. package/dist/transforms/v6/alert.js +14 -14
  13. package/dist/transforms/v6/appearance-provider.js +8 -10
  14. package/dist/transforms/v6/banner.js +10 -10
  15. package/dist/transforms/v6/calendar-range.js +6 -6
  16. package/dist/transforms/v6/calendar.js +6 -6
  17. package/dist/transforms/v6/card-scroll.js +5 -5
  18. package/dist/transforms/v6/chip.js +6 -6
  19. package/dist/transforms/v6/chips-input.js +6 -6
  20. package/dist/transforms/v6/config-provider.js +20 -20
  21. package/dist/transforms/v6/content-card.js +7 -7
  22. package/dist/transforms/v6/custom-scroll-view.js +11 -13
  23. package/dist/transforms/v6/date-input.js +6 -6
  24. package/dist/transforms/v6/date-range-input.js +6 -6
  25. package/dist/transforms/v6/fixed-layout.js +11 -11
  26. package/dist/transforms/v6/forbid-imports.js +8 -8
  27. package/dist/transforms/v6/form-item.js +9 -9
  28. package/dist/transforms/v6/form-layout.js +10 -10
  29. package/dist/transforms/v6/gallery.js +5 -5
  30. package/dist/transforms/v6/gradient-prop-change.js +12 -12
  31. package/dist/transforms/v6/horizontal-cell-show-more.js +7 -11
  32. package/dist/transforms/v6/image-base.js +7 -7
  33. package/dist/transforms/v6/modal-card.js +16 -18
  34. package/dist/transforms/v6/modal-page-header.js +11 -11
  35. package/dist/transforms/v6/pagination.js +12 -12
  36. package/dist/transforms/v6/panel-header-content.js +10 -10
  37. package/dist/transforms/v6/panel-header.js +11 -11
  38. package/dist/transforms/v6/placeholder.js +5 -5
  39. package/dist/transforms/v6/popout-wrapper.js +9 -9
  40. package/dist/transforms/v6/popover.js +45 -54
  41. package/dist/transforms/v6/popper.js +35 -44
  42. package/dist/transforms/v6/range-slider.js +14 -25
  43. package/dist/transforms/v6/rich-tooltip.js +10 -10
  44. package/dist/transforms/v6/search.js +6 -6
  45. package/dist/transforms/v6/select.js +7 -7
  46. package/dist/transforms/v6/simple-cell.js +13 -15
  47. package/dist/transforms/v6/split-col.js +9 -9
  48. package/dist/transforms/v6/tabbar.js +5 -5
  49. package/dist/transforms/v6/tappable.js +13 -15
  50. package/dist/transforms/v6/text-tooltip.js +47 -58
  51. package/dist/transforms/v6/tooltip-container.js +14 -14
  52. package/dist/transforms/v6/tooltip.js +63 -72
  53. package/dist/transforms/v6/typography.js +19 -21
  54. package/dist/transforms/v6/users-stack.js +13 -13
  55. package/dist/transforms/v6/visually-hidden-input.js +13 -24
  56. package/dist/transforms/v7/action-sheet.js +5 -5
  57. package/dist/transforms/v7/alert.js +5 -5
  58. package/dist/transforms/v7/appearance-provider.js +12 -12
  59. package/dist/transforms/v7/appearance.js +16 -16
  60. package/dist/transforms/v7/banner.js +13 -14
  61. package/dist/transforms/v7/calendar.js +5 -5
  62. package/dist/transforms/v7/card-grid.js +5 -5
  63. package/dist/transforms/v7/card-scroll.js +17 -18
  64. package/dist/transforms/v7/cell-button.js +13 -13
  65. package/dist/transforms/v7/cell.js +5 -5
  66. package/dist/transforms/v7/chips-select.js +8 -8
  67. package/dist/transforms/v7/common/moveFromChildrenToLabel.js +19 -21
  68. package/dist/transforms/v7/common/remapSizePropValue.js +14 -16
  69. package/dist/transforms/v7/common/removeChildrenFromComponent.js +6 -6
  70. package/dist/transforms/v7/common/swapGapPropElements.js +7 -7
  71. package/dist/transforms/v7/config-provider.js +32 -36
  72. package/dist/transforms/v7/content-card.js +5 -5
  73. package/dist/transforms/v7/counter.js +12 -12
  74. package/dist/transforms/v7/custom-scroll-view.js +8 -8
  75. package/dist/transforms/v7/custom-select.js +8 -8
  76. package/dist/transforms/v7/date-picker.js +8 -8
  77. package/dist/transforms/v7/flex.js +6 -6
  78. package/dist/transforms/v7/form-item.js +29 -35
  79. package/dist/transforms/v7/form-status.js +5 -5
  80. package/dist/transforms/v7/header.js +21 -21
  81. package/dist/transforms/v7/horizontal-cell-show-more.js +16 -19
  82. package/dist/transforms/v7/horizontal-cell.js +5 -5
  83. package/dist/transforms/v7/horizontal-scroll.js +12 -12
  84. package/dist/transforms/v7/image-overlay.js +30 -32
  85. package/dist/transforms/v7/mini-info-cell.js +5 -5
  86. package/dist/transforms/v7/modal-card.js +7 -7
  87. package/dist/transforms/v7/onboarding-tooltip.js +5 -5
  88. package/dist/transforms/v7/panel-header-back.js +6 -6
  89. package/dist/transforms/v7/panel-header-close.js +6 -6
  90. package/dist/transforms/v7/panel-header-content.js +5 -5
  91. package/dist/transforms/v7/panel-header-edit.js +6 -6
  92. package/dist/transforms/v7/panel-header-submit.js +6 -6
  93. package/dist/transforms/v7/panel-spinner.js +10 -10
  94. package/dist/transforms/v7/placeholder.js +5 -5
  95. package/dist/transforms/v7/rich-cell.js +5 -5
  96. package/dist/transforms/v7/screen-spinner.js +7 -7
  97. package/dist/transforms/v7/scroll-arrow.js +20 -23
  98. package/dist/transforms/v7/select.js +8 -8
  99. package/dist/transforms/v7/separator.js +6 -6
  100. package/dist/transforms/v7/simple-cell.js +5 -5
  101. package/dist/transforms/v7/simple-grid.js +6 -6
  102. package/dist/transforms/v7/spacing.js +9 -9
  103. package/dist/transforms/v7/spinner.js +9 -9
  104. package/dist/transforms/v7/subnavigation-bar.js +10 -10
  105. package/dist/transforms/v7/subnavigation-button.js +5 -5
  106. package/dist/transforms/v7/tabbar-item.js +5 -5
  107. package/dist/transforms/v7/tooltip.js +5 -5
  108. package/dist/transforms/v7/typography.js +16 -17
  109. package/dist/transforms/v7/users-stack.js +13 -13
  110. package/dist/transforms/v8/action-sheet.js +6 -6
  111. package/dist/transforms/v8/alert.js +5 -5
  112. package/dist/transforms/v8/checkbox.js +12 -12
  113. package/dist/transforms/v8/chips-input.js +7 -7
  114. package/dist/transforms/v8/chips-select.js +7 -7
  115. package/dist/transforms/v8/common/moveAllPropsIntoSlotProp.js +6 -16
  116. package/dist/transforms/v8/common/moveInputPropsIntoSlotProps.js +8 -8
  117. package/dist/transforms/v8/common/movePropIntoSlotProps.js +44 -63
  118. package/dist/transforms/v8/custom-select.js +7 -7
  119. package/dist/transforms/v8/file.js +7 -7
  120. package/dist/transforms/v8/input.js +8 -7
  121. package/dist/transforms/v8/native-select.js +7 -7
  122. package/dist/transforms/v8/popout-wrapper.js +12 -12
  123. package/dist/transforms/v8/radio.js +12 -12
  124. package/dist/transforms/v8/rich-cell.js +11 -11
  125. package/dist/transforms/v8/search.js +8 -7
  126. package/dist/transforms/v8/select.js +7 -7
  127. package/dist/transforms/v8/snackbar.js +6 -6
  128. package/dist/transforms/v8/split-layout.js +7 -7
  129. package/dist/transforms/v8/switch.js +7 -7
  130. package/dist/transforms/v8/text-area.js +7 -7
  131. package/dist/transforms/v8/write-bar.js +7 -7
  132. 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
- var fs_1 = __importDefault(require("fs"));
53
- var node_events_1 = require("node:events");
54
- var chalk_1 = __importDefault(require("chalk"));
55
- var cross_spawn_1 = require("cross-spawn");
56
- var prompts_1 = __importDefault(require("prompts"));
57
- var cli_js_1 = require("./cli.js");
58
- var getAvailableCodemods_js_1 = require("./getAvailableCodemods.js");
59
- var logger_js_1 = __importDefault(require("./helpers/logger.js"));
60
- var MAX_PRINTED_PATHS = 5;
61
- function runJSCodeShift(_a) {
62
- var codemodName = _a.codemodName, transformsVersion = _a.transformsVersion, paths = _a.paths, flags = _a.flags, logStream = _a.logStream;
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("--ignore-config=".concat(flags.ignoreConfig));
22
+ args.push(`--ignore-config=${flags.ignoreConfig}`);
69
23
  }
70
24
  if (!flags.debug) {
71
25
  args.push('--silent');
72
26
  }
73
- var result = (0, cross_spawn_1.sync)('node', __spreadArray(__spreadArray(__spreadArray([
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
- "".concat(getAvailableCodemods_js_1.TRANSFORM_DIR, "/v").concat(transformsVersion, "/").concat(codemodName, ".js")
79
- ], args, true), [
80
- '--ignore-pattern node_modules'
81
- ], false), (flags.inputFile ? ["--stdin < ".concat(flags.inputFile)] : paths), true), {
82
- stdio: ['inherit', logStream !== null && logStream !== void 0 ? logStream : 'inherit', 'inherit'],
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("Codemod ".concat(codemodName, " failed to apply."));
41
+ logger_js_1.default.error(`Codemod ${codemodName} failed to apply.`);
87
42
  return;
88
43
  }
89
44
  }
90
- function promptConfirmation() {
91
- return __awaiter(this, void 0, void 0, function () {
92
- var confirmation;
93
- return __generator(this, function (_a) {
94
- switch (_a.label) {
95
- case 0: return [4 /*yield*/, (0, prompts_1.default)({
96
- type: 'toggle',
97
- name: 'confirmation',
98
- message: "Would you like to continue?",
99
- initial: true,
100
- active: 'Yes',
101
- inactive: 'No',
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 "from ".concat(inputFile);
62
+ return `from ${inputFile}`;
117
63
  }
118
64
  if (paths.length > MAX_PRINTED_PATHS) {
119
- return "".concat(paths.slice(0, MAX_PRINTED_PATHS).join(', '), " and ").concat(paths.length - MAX_PRINTED_PATHS, " more");
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(_a) {
124
- return __awaiter(this, arguments, void 0, function (_b) {
125
- var formattedPaths, confirmed;
126
- var paths = _b.paths, inputFile = _b.inputFile, codemodNames = _b.codemodNames, transformsVersion = _b.transformsVersion;
127
- return __generator(this, function (_c) {
128
- switch (_c.label) {
129
- case 0:
130
- formattedPaths = getWorkingPathsInfo(paths, inputFile);
131
- logger_js_1.default.info("Please ".concat(chalk_1.default.cyan('verify'), " the following information:\n working files/directories: ").concat(formattedPaths, "\n target vkui major version: ").concat(transformsVersion, "\n codemods to apply: ").concat(codemodNames ? codemodNames : chalk_1.default.red('all'), "\n "));
132
- return [4 /*yield*/, promptConfirmation()];
133
- case 1:
134
- confirmed = _c.sent();
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
- var run = function () { return __awaiter(void 0, void 0, void 0, function () {
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(function (codemodName) {
147
- logger_js_1.default.info("Codemod ".concat(codemodName, " in process..."));
148
- runJSCodeShift({ codemodName: codemodName, transformsVersion: transformsVersion, paths: paths, flags: flags, logStream: logStream });
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
- var _a, flags, codemods, transformsVersion, paths, logStream;
152
- return __generator(this, function (_b) {
153
- switch (_b.label) {
154
- case 0: return [4 /*yield*/, (0, cli_js_1.runCli)()];
155
- case 1:
156
- _a = _b.sent(), flags = _a.flags, codemods = _a.codemods, transformsVersion = _a.transformsVersion;
157
- paths = flags.path ? flags.path : [process.cwd()];
158
- return [4 /*yield*/, verifyConfiguration({
159
- paths: paths,
160
- inputFile: flags.inputFile,
161
- transformsVersion: transformsVersion,
162
- codemodNames: flags.all ? undefined : codemods,
163
- })];
164
- case 2:
165
- _b.sent();
166
- logger_js_1.default.info("\n 🚀 Let's go!");
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
- var chalk_1 = __importDefault(require("chalk"));
8
- var package_json_1 = __importDefault(require("../package.json"));
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const package_json_1 = __importDefault(require("../package.json"));
9
9
  function report(api, message) {
10
- var report = api.report;
11
- var finalMessage = "".concat(message, " Advise ").concat(chalk_1.default.white.bgBlue.bold('migration guide'), " - ").concat(package_json_1.default.homepage, "#/Migrations \n\n");
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
- var path_1 = __importDefault(require("path"));
82
- var testUtils_1 = require("jscodeshift/dist/testUtils");
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
- if (extension === void 0) { extension = 'tsx'; }
86
- var fixtureDir = path_1.default.join(dirName, '..', '__testfixtures__');
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
- return __awaiter(this, void 0, void 0, function () {
95
- var module;
96
- return __generator(this, function (_a) {
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
- var chalk_1 = __importDefault(require("chalk"));
9
- var codemod_helpers_1 = require("../../codemod-helpers");
10
- var report_1 = require("../../report");
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
- var alias = options.alias;
14
- var j = api.jscodeshift;
15
- var source = j(file.source);
16
- var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Accordion', alias).localName;
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
- var accordionComponents = source
21
+ const accordionComponents = source
22
22
  .find(j.JSXOpeningElement)
23
- .filter(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; });
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, ": ".concat(chalk_1.default.white.bgBlue('Accordion'), " has been changed. Manual changes required."));
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
- var codemod_helpers_1 = require("../../codemod-helpers");
5
+ const codemod_helpers_1 = require("../../codemod-helpers");
6
6
  exports.parser = 'tsx';
7
7
  function transformer(file, api, options) {
8
- var alias = options.alias;
9
- var j = api.jscodeshift;
10
- var source = j(file.source);
11
- var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ActionSheetItem', alias).localName;
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
- var chalk_1 = __importDefault(require("chalk"));
9
- var codemod_helpers_1 = require("../../codemod-helpers");
10
- var report_1 = require("../../report");
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
- var alias = options.alias;
14
- var j = api.jscodeshift;
15
- var source = j(file.source);
16
- var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ActionSheet', alias).localName;
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
- var openingTargetElements = source
20
+ const openingTargetElements = source
21
21
  .find(j.JSXOpeningElement)
22
- .filter(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; });
23
- openingTargetElements.forEach(function (path) {
24
- var attributes = path.value.attributes;
25
- var noRequiredProp = true;
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(function (attr) {
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, ": prop ".concat(chalk_1.default.white.bgBlue('popupDirection'), " in ").concat(chalk_1.default.white.bgBlue('ActionSheet'), " must be replaced manually."));
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, ": prop ".concat(chalk_1.default.white.bgBlue('toggleRef'), " in ").concat(chalk_1.default.white.bgBlue('ActionSheet'), " is required."));
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
- var codemod_helpers_1 = require("../../codemod-helpers");
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(function (path) { return path.value.key.type === 'Identifier' && path.value.key.name === 'autoClose'; })
13
- .forEach(function (property) {
14
- var propertyValue = property.value;
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
- var alias = options.alias;
27
- var j = api.jscodeshift;
28
- var source = j(file.source);
29
- var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Alert', alias).localName;
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(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; })
35
+ .filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
36
36
  .find(j.JSXAttribute)
37
- .filter(function (attribute) { return attribute.node.name.name === 'actions'; })
38
- .forEach(function (attribute) {
39
- var node = attribute.node.value;
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
- var decl = source.findVariableDeclarators(node.expression.name);
44
- decl.forEach(function (path) {
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
- var codemod_helpers_1 = require("../../codemod-helpers");
5
+ const codemod_helpers_1 = require("../../codemod-helpers");
6
6
  exports.parser = 'tsx';
7
7
  function transformer(file, api, options) {
8
- var alias = options.alias;
9
- var j = api.jscodeshift;
10
- var source = j(file.source);
11
- var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'AppearanceProvider', alias).localName;
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(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; })
17
+ .filter((path) => path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName)
18
18
  .find(j.JSXAttribute)
19
- .filter(function (attribute) { return attribute.node.name.name === 'appearance'; })
20
- .forEach(function (attribute) {
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
  }