@vkontakte/vkui-codemods 0.0.7 → 1.0.0-beta.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 (72) hide show
  1. package/README.md +10 -5
  2. package/dist/autoDetectVKUIVersion.js +77 -0
  3. package/dist/cli.js +14 -6
  4. package/dist/codemod-helpers.js +8 -4
  5. package/dist/getAvailableCodemods.js +31 -4
  6. package/dist/index.js +24 -19
  7. package/dist/report.js +1 -2
  8. package/dist/testHelpers/testHelper.js +3 -3
  9. package/dist/transforms/{accordion.js → v6/accordion.js} +3 -3
  10. package/dist/transforms/{action-sheet-item.js → v6/action-sheet-item.js} +2 -2
  11. package/dist/transforms/{action-sheet.js → v6/action-sheet.js} +3 -3
  12. package/dist/transforms/{alert.js → v6/alert.js} +2 -2
  13. package/dist/transforms/{appearance-provider.js → v6/appearance-provider.js} +2 -2
  14. package/dist/transforms/{banner.js → v6/banner.js} +3 -3
  15. package/dist/transforms/{calendar-range.js → v6/calendar-range.js} +2 -2
  16. package/dist/transforms/{calendar.js → v6/calendar.js} +2 -2
  17. package/dist/transforms/{card-scroll.js → v6/card-scroll.js} +2 -2
  18. package/dist/transforms/{chip.js → v6/chip.js} +2 -2
  19. package/dist/transforms/{chips-input.js → v6/chips-input.js} +2 -2
  20. package/dist/transforms/{config-provider.js → v6/config-provider.js} +2 -2
  21. package/dist/transforms/{content-card.js → v6/content-card.js} +2 -2
  22. package/dist/transforms/{custom-scroll-view.js → v6/custom-scroll-view.js} +3 -3
  23. package/dist/transforms/{date-input.js → v6/date-input.js} +2 -2
  24. package/dist/transforms/{date-range-input.js → v6/date-range-input.js} +2 -2
  25. package/dist/transforms/{fixed-layout.js → v6/fixed-layout.js} +2 -2
  26. package/dist/transforms/{forbid-imports.js → v6/forbid-imports.js} +2 -2
  27. package/dist/transforms/{form-item.js → v6/form-item.js} +2 -2
  28. package/dist/transforms/{form-layout.js → v6/form-layout.js} +3 -3
  29. package/dist/transforms/{gallery.js → v6/gallery.js} +2 -2
  30. package/dist/transforms/{gradient-prop-change.js → v6/gradient-prop-change.js} +3 -3
  31. package/dist/transforms/{image-base.js → v6/image-base.js} +2 -2
  32. package/dist/transforms/{modal-card.js → v6/modal-card.js} +3 -3
  33. package/dist/transforms/{modal-page-header.js → v6/modal-page-header.js} +2 -2
  34. package/dist/transforms/{pagination.js → v6/pagination.js} +3 -3
  35. package/dist/transforms/{panel-header-content.js → v6/panel-header-content.js} +3 -3
  36. package/dist/transforms/{panel-header.js → v6/panel-header.js} +3 -3
  37. package/dist/transforms/{placeholder.js → v6/placeholder.js} +2 -2
  38. package/dist/transforms/{popout-wrapper.js → v6/popout-wrapper.js} +3 -3
  39. package/dist/transforms/{popover.js → v6/popover.js} +2 -2
  40. package/dist/transforms/{popper.js → v6/popper.js} +2 -2
  41. package/dist/transforms/{rich-tooltip.js → v6/rich-tooltip.js} +3 -3
  42. package/dist/transforms/{search.js → v6/search.js} +2 -2
  43. package/dist/transforms/{select.js → v6/select.js} +2 -2
  44. package/dist/transforms/{simple-cell.js → v6/simple-cell.js} +3 -3
  45. package/dist/transforms/{split-col.js → v6/split-col.js} +2 -2
  46. package/dist/transforms/{tabbar.js → v6/tabbar.js} +2 -2
  47. package/dist/transforms/{tappable.js → v6/tappable.js} +3 -3
  48. package/dist/transforms/{text-tooltip.js → v6/text-tooltip.js} +2 -2
  49. package/dist/transforms/{tooltip-container.js → v6/tooltip-container.js} +2 -2
  50. package/dist/transforms/{tooltip.js → v6/tooltip.js} +2 -2
  51. package/dist/transforms/{typography.js → v6/typography.js} +3 -3
  52. package/dist/transforms/{users-stack.js → v6/users-stack.js} +3 -3
  53. package/dist/transforms/v7/cell-button.js +49 -0
  54. package/dist/transforms/v7/common/remapSizePropValue.js +38 -0
  55. package/dist/transforms/v7/common/swapGapPropElements.js +25 -0
  56. package/dist/transforms/v7/flex.js +18 -0
  57. package/dist/transforms/v7/form-item.js +128 -0
  58. package/dist/transforms/v7/header.js +27 -0
  59. package/dist/transforms/v7/horizontal-cell-show-more.js +38 -0
  60. package/dist/transforms/v7/horizontal-scroll.js +38 -0
  61. package/dist/transforms/v7/image-overlay.js +125 -0
  62. package/dist/transforms/v7/screen-spinner.js +38 -0
  63. package/dist/transforms/v7/separator.js +17 -0
  64. package/dist/transforms/v7/simple-grid.js +18 -0
  65. package/dist/transforms/v7/spacing.js +26 -0
  66. package/dist/transforms/v7/spinner.js +29 -0
  67. package/dist/transforms/v7/typography.js +79 -0
  68. package/dist/transforms/v7/users-stack.js +50 -0
  69. package/package.json +6 -6
  70. package/dist/transforms/{horizontal-cell-show-more.js → v6/horizontal-cell-show-more.js} +1 -1
  71. package/dist/transforms/{range-slider.js → v6/range-slider.js} +1 -1
  72. package/dist/transforms/{visually-hidden-input.js → v6/visually-hidden-input.js} +1 -1
package/README.md CHANGED
@@ -1,24 +1,28 @@
1
- # VKUI v6 Codemods
1
+ # VKUI Codemods
2
2
 
3
3
  Чтобы упростить переход на новую мажорную версию, можно воспользоваться инструментом по автоматической миграции ваших компонентов.
4
4
 
5
- > Для начала обновите ваше приложение до новой мажорной версии (**v6**) в соответствии с требованиями вашего пакетного менеджера и среды
5
+ > Для начала обновите ваше приложение до необходимой мажорной версии (например, **v7**) в соответствии с требованиями вашего пакетного менеджера и среды
6
6
 
7
- > Обратите внимание, минимальная поддерживаемая версия **React** увеличена до `v18.2.0`
7
+ > Обратите внимание, минимальная поддерживаемая версия **React** `v18.2.0`
8
8
 
9
9
  > Пока для перевода доступны только `Typescript`-файлы (_.ts/_.tsx)
10
10
 
11
11
  > Из-за особенностей работы `jscodeshift` после применения миграции у вас могут появиться лишние скобки вокруг `JSX`-элементов, пожалуйста, запустите `prettier`, чтобы отформатировать код в соответствии с вашими настройками.
12
12
 
13
+ > Если вы хотите обновиться с `v5` на `v7` вам необходимо будет обновиться сначала на `v6`, а затем на `v7`, запустив скрипт последовательно для каждой из версий.
14
+
15
+ ## Запуск
16
+
13
17
  Перейдите в директорию с исходниками вашего проекта (обычно это `src/`) и запустите следующую команду:
14
18
 
15
19
  ```shell
16
20
  npx @vkontakte/vkui-codemods
17
21
  ```
18
22
 
19
- Инструмент представляет собой консольное приложение, с помощью которого вы можете выбрать необходимые изменения и применить их, доступны следующие команды:
23
+ Инструмент представляет собой консольное приложение, с помощью которого вы можете выбрать необходимые изменения и применить их. Доступны следующие команды:
20
24
 
21
- ```
25
+ ```console
22
26
  $ npx @vkontakte/vkui-codemods --help
23
27
 
24
28
  Usage: @vkontakte/vkui-codemod [codemod-name]
@@ -30,6 +34,7 @@ Options:
30
34
  -V, --version output the version number
31
35
  -l --list list available codemods
32
36
  --all apply all available codemods
37
+ -tv --transforms-version <transformsVersion> vkui major version transforms (available versions: "6", "7")
33
38
  -p --path <paths> path to files in which to apply the codemods (default: current directory)
34
39
  --dry-run no changes are made to files
35
40
  --ignore-config <config> ignore files if they match patterns sourced from a configuration file (e.g. a .gitignore)
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.autoDetectVKUIVersion = autoDetectVKUIVersion;
41
+ var fs_1 = __importDefault(require("fs"));
42
+ var path = __importStar(require("path"));
43
+ var semver = __importStar(require("semver"));
44
+ function findPackageJsonWithVKUI(startDir) {
45
+ var currentDir = startDir;
46
+ while (currentDir !== path.parse(currentDir).root) {
47
+ var packageJsonPath = path.join(currentDir, 'package.json');
48
+ if (fs_1.default.existsSync(packageJsonPath)) {
49
+ var vkuiVersion = getVKUIVersion(packageJsonPath);
50
+ if (vkuiVersion) {
51
+ return packageJsonPath;
52
+ }
53
+ }
54
+ currentDir = path.dirname(currentDir);
55
+ }
56
+ return null;
57
+ }
58
+ function getVKUIVersion(packageJsonPath) {
59
+ var packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
60
+ var dependencies = __assign(__assign({}, packageJson.dependencies), packageJson.devDependencies);
61
+ return dependencies['@vkontakte/vkui'];
62
+ }
63
+ function getMajorVersion(version) {
64
+ var parsed = semver.valid(semver.coerce(version));
65
+ return parsed ? semver.major(parsed) : null;
66
+ }
67
+ function autoDetectVKUIVersion() {
68
+ var startDir = process.cwd();
69
+ var packageJsonPath = findPackageJsonWithVKUI(startDir);
70
+ if (packageJsonPath) {
71
+ var vkuiVersion = getVKUIVersion(packageJsonPath);
72
+ if (vkuiVersion) {
73
+ return String(getMajorVersion(vkuiVersion));
74
+ }
75
+ }
76
+ return null;
77
+ }
package/dist/cli.js CHANGED
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
12
+ 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);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
@@ -43,9 +43,10 @@ exports.runCli = void 0;
43
43
  var chalk_1 = __importDefault(require("chalk"));
44
44
  var commander_1 = require("commander");
45
45
  var prompts_1 = __importDefault(require("prompts"));
46
+ var autoDetectVKUIVersion_1 = require("./autoDetectVKUIVersion");
46
47
  var getAvailableCodemods_js_1 = __importDefault(require("./getAvailableCodemods.js"));
47
- var logger_js_1 = __importDefault(require("./helpers/logger.js"));
48
48
  var package_json_1 = __importDefault(require("../package.json"));
49
+ var logger_js_1 = __importDefault(require("./helpers/logger.js"));
49
50
  var trimStringValue = function (value) {
50
51
  return typeof value === 'string' ? value.trim() : value;
51
52
  };
@@ -71,7 +72,7 @@ var promptAvailableCodemods = function (codemods) { return __awaiter(void 0, voi
71
72
  });
72
73
  }); };
73
74
  var runCli = function () { return __awaiter(void 0, void 0, void 0, function () {
74
- var program, options, codemodName, codemods, codemods;
75
+ var program, options, codemodName, transformsVersion, codemods, codemods;
75
76
  return __generator(this, function (_a) {
76
77
  switch (_a.label) {
77
78
  case 0:
@@ -81,6 +82,7 @@ var runCli = function () { return __awaiter(void 0, void 0, void 0, function ()
81
82
  .usage("".concat(chalk_1.default.green('[codemod-name]')))
82
83
  .option('-l --list', 'list available codemods')
83
84
  .option('--all', 'apply all available codemods')
85
+ .option('-tv --transforms-version <transformsVersion>', 'vkui major version transforms (available versions: "6", "7")')
84
86
  .option('-p --path <paths>', 'path to files in which to apply the codemods')
85
87
  .option('--dry-run', 'no changes are made to files')
86
88
  .option('--ignore-config <config>', 'ignore files if they match patterns sourced from a configuration file (e.g. a .gitignore)')
@@ -92,13 +94,18 @@ var runCli = function () { return __awaiter(void 0, void 0, void 0, function ()
92
94
  .parse(process.argv);
93
95
  options = program.opts();
94
96
  codemodName = program.args[0];
97
+ transformsVersion = options.transformsVersion || (0, autoDetectVKUIVersion_1.autoDetectVKUIVersion)();
98
+ if (!transformsVersion) {
99
+ logger_js_1.default.error('Problem determining the major version of vkui, try specifying it using the --transforms-version');
100
+ process.exit(1);
101
+ }
95
102
  if (options.list) {
96
- codemods = (0, getAvailableCodemods_js_1.default)();
103
+ codemods = (0, getAvailableCodemods_js_1.default)(transformsVersion);
97
104
  logger_js_1.default.info(codemods);
98
105
  process.exit(0);
99
106
  }
100
107
  if (!(!codemodName && !options.all)) return [3 /*break*/, 2];
101
- codemods = (0, getAvailableCodemods_js_1.default)();
108
+ codemods = (0, getAvailableCodemods_js_1.default)(transformsVersion);
102
109
  return [4 /*yield*/, promptAvailableCodemods(codemods)];
103
110
  case 1:
104
111
  codemodName = _a.sent();
@@ -106,6 +113,7 @@ var runCli = function () { return __awaiter(void 0, void 0, void 0, function ()
106
113
  case 2: return [2 /*return*/, {
107
114
  flags: options,
108
115
  codemodName: codemodName,
116
+ transformsVersion: transformsVersion,
109
117
  }];
110
118
  }
111
119
  });
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAttributeManipulator = exports.swapBooleanValue = exports.renameProp = exports.getImportInfo = void 0;
3
+ exports.createAttributeManipulator = exports.removeAttribute = void 0;
4
+ exports.getImportInfo = getImportInfo;
5
+ exports.renameProp = renameProp;
6
+ exports.swapBooleanValue = swapBooleanValue;
4
7
  var report_1 = require("./report");
5
8
  function getImportInfo(j, file, componentName, alias) {
6
9
  var source = j(file.source);
@@ -15,7 +18,6 @@ function getImportInfo(j, file, componentName, alias) {
15
18
  });
16
19
  return { localName: localImportName };
17
20
  }
18
- exports.getImportInfo = getImportInfo;
19
21
  function renameProp(j, source, componentName, renameMap) {
20
22
  var from = Object.keys(renameMap);
21
23
  return source
@@ -30,7 +32,6 @@ function renameProp(j, source, componentName, renameMap) {
30
32
  j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(renameMap[attribute.node.name.name]), attribute.node.value));
31
33
  });
32
34
  }
33
- exports.renameProp = renameProp;
34
35
  function swapBooleanValue(api, source, componentName, previousPropName, currentPropName) {
35
36
  var j = api.jscodeshift;
36
37
  source
@@ -55,7 +56,10 @@ function swapBooleanValue(api, source, componentName, previousPropName, currentP
55
56
  }
56
57
  });
57
58
  }
58
- exports.swapBooleanValue = swapBooleanValue;
59
+ var removeAttribute = function (attributes, attribute) {
60
+ attributes === null || attributes === void 0 ? void 0 : attributes.splice(attributes === null || attributes === void 0 ? void 0 : attributes.indexOf(attribute), 1);
61
+ };
62
+ exports.removeAttribute = removeAttribute;
59
63
  var createAttributeManipulator = function (props, api) {
60
64
  var map = new Map(Object.entries(props));
61
65
  return {
@@ -1,10 +1,35 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.TRANSFORM_DIR = void 0;
30
+ exports.default = getAvailableCodemods;
7
31
  var fs_1 = __importDefault(require("fs"));
32
+ var path = __importStar(require("path"));
8
33
  exports.TRANSFORM_DIR = "".concat(__dirname, "/transforms");
9
34
  var CODEMODS = [];
10
35
  var swapElementsOfArray = function (a, b, array) {
@@ -16,15 +41,17 @@ var swapElementsOfArray = function (a, b, array) {
16
41
  array[b] = valueA;
17
42
  array[a] = valueB;
18
43
  };
19
- function getAvailableCodemods(dirname) {
44
+ function getAvailableCodemods(version, dirname) {
20
45
  if (dirname === void 0) { dirname = exports.TRANSFORM_DIR; }
21
46
  if (CODEMODS.length === 0) {
47
+ var transformsPath = path.join(dirname, "v".concat(version));
22
48
  CODEMODS = fs_1.default
23
- .readdirSync(dirname)
49
+ .readdirSync(transformsPath)
24
50
  .filter(function (fname) { return fname.endsWith('.js') || fname.endsWith('.ts'); })
25
51
  .map(function (fname) { return fname.slice(0, -3); });
26
- swapElementsOfArray(CODEMODS.findIndex(function (fname) { return fname === 'text-tooltip'; }), CODEMODS.findIndex(function (fname) { return fname === 'tooltip'; }), CODEMODS);
52
+ if (version === '6') {
53
+ swapElementsOfArray(CODEMODS.findIndex(function (fname) { return fname === 'text-tooltip'; }), CODEMODS.findIndex(function (fname) { return fname === 'tooltip'; }), CODEMODS);
54
+ }
27
55
  }
28
56
  return CODEMODS;
29
57
  }
30
- exports.default = getAvailableCodemods;
package/dist/index.js CHANGED
@@ -33,8 +33,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
33
33
  });
34
34
  };
35
35
  var __generator = (this && this.__generator) || function (thisArg, body) {
36
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
37
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
36
+ 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);
37
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
38
  function verb(n) { return function (v) { return step([n, v]); }; }
39
39
  function step(op) {
40
40
  if (f) throw new TypeError("Generator is already executing.");
@@ -78,7 +78,7 @@ var prompts_1 = __importDefault(require("prompts"));
78
78
  var cli_js_1 = require("./cli.js");
79
79
  var getAvailableCodemods_js_1 = __importStar(require("./getAvailableCodemods.js"));
80
80
  var logger_js_1 = __importDefault(require("./helpers/logger.js"));
81
- function runJSCodeShift(codemodName, workingDirectory, flags) {
81
+ function runJSCodeShift(codemodName, transformsVersion, workingDirectory, flags) {
82
82
  var args = ['--parser=tsx', '--extensions=tsx,ts', "--alias=".concat(flags.alias)];
83
83
  if (flags.dryRun) {
84
84
  args.push('--dry');
@@ -94,7 +94,7 @@ function runJSCodeShift(codemodName, workingDirectory, flags) {
94
94
  '--no-babel',
95
95
  '--fail-on-error',
96
96
  '-t',
97
- "".concat(getAvailableCodemods_js_1.TRANSFORM_DIR, "/").concat(codemodName, ".js")
97
+ "".concat(getAvailableCodemods_js_1.TRANSFORM_DIR, "/v").concat(transformsVersion, "/").concat(codemodName, ".js")
98
98
  ], args, true), [
99
99
  workingDirectory,
100
100
  ], false), {
@@ -130,16 +130,17 @@ function promptConfirmation() {
130
130
  });
131
131
  });
132
132
  }
133
- function verifyConfiguration(workingDirectory, codemodName) {
134
- return __awaiter(this, void 0, void 0, function () {
133
+ function verifyConfiguration(_a) {
134
+ return __awaiter(this, arguments, void 0, function (_b) {
135
135
  var confirmed;
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
136
+ var workingDirectory = _b.workingDirectory, transformsVersion = _b.transformsVersion, codemodName = _b.codemodName;
137
+ return __generator(this, function (_c) {
138
+ switch (_c.label) {
138
139
  case 0:
139
- logger_js_1.default.info("Please ".concat(chalk_1.default.cyan('verify'), " the following information:\n working directory: ").concat(workingDirectory, "\n codemod to apply: ").concat(codemodName ? codemodName : chalk_1.default.red('all'), "\n "));
140
+ logger_js_1.default.info("Please ".concat(chalk_1.default.cyan('verify'), " the following information:\n working directory: ").concat(workingDirectory, "\n target major vkui version: ").concat(transformsVersion, "\n codemod to apply: ").concat(codemodName ? codemodName : chalk_1.default.red('all'), "\n "));
140
141
  return [4 /*yield*/, promptConfirmation()];
141
142
  case 1:
142
- confirmed = _a.sent();
143
+ confirmed = _c.sent();
143
144
  if (!confirmed) {
144
145
  logger_js_1.default.info('Exiting without changes...');
145
146
  process.exit(0);
@@ -150,21 +151,25 @@ function verifyConfiguration(workingDirectory, codemodName) {
150
151
  });
151
152
  }
152
153
  var run = function () { return __awaiter(void 0, void 0, void 0, function () {
153
- var _a, flags, codemodName, workingDirectory, codemodes, codemodes;
154
+ var _a, flags, codemodName, transformsVersion, workingDirectory, codemodes, codemodes;
154
155
  return __generator(this, function (_b) {
155
156
  switch (_b.label) {
156
157
  case 0: return [4 /*yield*/, (0, cli_js_1.runCli)()];
157
158
  case 1:
158
- _a = _b.sent(), flags = _a.flags, codemodName = _a.codemodName;
159
+ _a = _b.sent(), flags = _a.flags, codemodName = _a.codemodName, transformsVersion = _a.transformsVersion;
159
160
  workingDirectory = flags.path ? flags.path : process.cwd();
160
161
  if (!(codemodName && workingDirectory)) return [3 /*break*/, 4];
161
- codemodes = (0, getAvailableCodemods_js_1.default)();
162
+ codemodes = (0, getAvailableCodemods_js_1.default)(transformsVersion);
162
163
  if (!codemodes.includes(codemodName)) return [3 /*break*/, 3];
163
- return [4 /*yield*/, verifyConfiguration(workingDirectory, codemodName)];
164
+ return [4 /*yield*/, verifyConfiguration({
165
+ workingDirectory: workingDirectory,
166
+ transformsVersion: transformsVersion,
167
+ codemodName: codemodName,
168
+ })];
164
169
  case 2:
165
170
  _b.sent();
166
171
  logger_js_1.default.info("\n 🚀 Let's go!");
167
- runJSCodeShift(codemodName, workingDirectory, flags);
172
+ runJSCodeShift(codemodName, transformsVersion, workingDirectory, flags);
168
173
  return [3 /*break*/, 4];
169
174
  case 3:
170
175
  logger_js_1.default.error("Codemod ".concat(codemodName, " doesn't exist. Please check the available codemods by running with --list option"));
@@ -172,18 +177,18 @@ var run = function () { return __awaiter(void 0, void 0, void 0, function () {
172
177
  _b.label = 4;
173
178
  case 4:
174
179
  if (!(flags.all && workingDirectory)) return [3 /*break*/, 6];
175
- return [4 /*yield*/, verifyConfiguration(workingDirectory)];
180
+ return [4 /*yield*/, verifyConfiguration({ workingDirectory: workingDirectory, transformsVersion: transformsVersion })];
176
181
  case 5:
177
182
  _b.sent();
178
183
  logger_js_1.default.info("\n 🚀 Let's go!");
179
- codemodes = (0, getAvailableCodemods_js_1.default)();
184
+ codemodes = (0, getAvailableCodemods_js_1.default)(transformsVersion);
180
185
  codemodes.forEach(function (codemod) {
181
186
  logger_js_1.default.info("Codemod ".concat(codemod, " in process..."));
182
- runJSCodeShift(codemod, workingDirectory, flags);
187
+ runJSCodeShift(codemod, transformsVersion, workingDirectory, flags);
183
188
  });
184
189
  _b.label = 6;
185
190
  case 6:
186
- 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('v6'), "!"));
191
+ 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)), "!"));
187
192
  return [2 /*return*/];
188
193
  }
189
194
  });
package/dist/report.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.report = void 0;
6
+ exports.report = report;
7
7
  var chalk_1 = __importDefault(require("chalk"));
8
8
  var package_json_1 = __importDefault(require("../package.json"));
9
9
  function report(api, message) {
@@ -16,4 +16,3 @@ function report(api, message) {
16
16
  console.warn(finalMessage);
17
17
  }
18
18
  }
19
- exports.report = report;
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.defineSnapshotTestFromFixture = exports.getTestFixturesInputPath = exports.applyTransform = void 0;
6
+ exports.applyTransform = void 0;
7
+ exports.getTestFixturesInputPath = getTestFixturesInputPath;
8
+ exports.defineSnapshotTestFromFixture = defineSnapshotTestFromFixture;
7
9
  /**
8
10
  * Файл для упрощенной работы с дефолтными функциями запуска `jscodeshift`
9
11
  */
@@ -15,7 +17,6 @@ function getTestFixturesInputPath(dirName, testFilePrefix, extension) {
15
17
  var fixtureDir = path_1.default.join(dirName, '..', '__testfixtures__');
16
18
  return path_1.default.join(fixtureDir, testFilePrefix + ".input.".concat(extension));
17
19
  }
18
- exports.getTestFixturesInputPath = getTestFixturesInputPath;
19
20
  /**
20
21
  * У оригинального defineSnapshotTestFromFixture нет типов
21
22
  * Избавляемся от необходимости в тестах постоянно указывать `module`
@@ -25,4 +26,3 @@ function defineSnapshotTestFromFixture(dirName, transformName, options, testFile
25
26
  var module = require(path_1.default.join(dirName, '..', transformName));
26
27
  (0, testUtils_1.defineSnapshotTestFromFixture)(dirName, module, options, testFilePrefix, 'transforms correctly', { parser: 'tsx' });
27
28
  }
28
- exports.defineSnapshotTestFromFixture = defineSnapshotTestFromFixture;
@@ -4,9 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parser = void 0;
7
+ exports.default = transformer;
7
8
  var chalk_1 = __importDefault(require("chalk"));
8
- var codemod_helpers_1 = require("../codemod-helpers");
9
- var report_1 = require("../report");
9
+ var codemod_helpers_1 = require("../../codemod-helpers");
10
+ var report_1 = require("../../report");
10
11
  exports.parser = 'tsx';
11
12
  function transformer(file, api, options) {
12
13
  var alias = options.alias;
@@ -25,4 +26,3 @@ function transformer(file, api, options) {
25
26
  }
26
27
  return source.toSource();
27
28
  }
28
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  function transformer(file, api, options) {
7
8
  var alias = options.alias;
@@ -13,4 +14,3 @@ function transformer(file, api, options) {
13
14
  }
14
15
  return source.toSource();
15
16
  }
16
- exports.default = transformer;
@@ -4,9 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parser = void 0;
7
+ exports.default = transformer;
7
8
  var chalk_1 = __importDefault(require("chalk"));
8
- var codemod_helpers_1 = require("../codemod-helpers");
9
- var report_1 = require("../report");
9
+ var codemod_helpers_1 = require("../../codemod-helpers");
10
+ var report_1 = require("../../report");
10
11
  exports.parser = 'tsx';
11
12
  function transformer(file, api, options) {
12
13
  var alias = options.alias;
@@ -45,4 +46,3 @@ function transformer(file, api, options) {
45
46
  });
46
47
  return source.toSource();
47
48
  }
48
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  function replaceInArrayExpression(j, path) {
7
8
  j(path)
@@ -48,4 +49,3 @@ function transformer(file, api, options) {
48
49
  });
49
50
  return source.toSource();
50
51
  }
51
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  function transformer(file, api, options) {
7
8
  var alias = options.alias;
@@ -21,4 +22,3 @@ function transformer(file, api, options) {
21
22
  });
22
23
  return source.toSource();
23
24
  }
24
- exports.default = transformer;
@@ -4,9 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parser = void 0;
7
+ exports.default = transformer;
7
8
  var chalk_1 = __importDefault(require("chalk"));
8
- var codemod_helpers_1 = require("../codemod-helpers");
9
- var report_1 = require("../report");
9
+ var codemod_helpers_1 = require("../../codemod-helpers");
10
+ var report_1 = require("../../report");
10
11
  exports.parser = 'tsx';
11
12
  function transformer(file, api, options) {
12
13
  var alias = options.alias;
@@ -24,4 +25,3 @@ function transformer(file, api, options) {
24
25
  }
25
26
  return source.toSource();
26
27
  }
27
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  var RENAME_MAP = {
7
8
  prevMonthAriaLabel: 'prevMonthLabel',
@@ -20,4 +21,3 @@ function transformer(file, api, options) {
20
21
  }
21
22
  return source.toSource();
22
23
  }
23
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  var RENAME_MAP = {
7
8
  prevMonthAriaLabel: 'prevMonthLabel',
@@ -22,4 +23,3 @@ function transformer(file, api, options) {
22
23
  }
23
24
  return source.toSource();
24
25
  }
25
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  function transformer(file, api, options) {
7
8
  var alias = options.alias;
@@ -13,4 +14,3 @@ function transformer(file, api, options) {
13
14
  }
14
15
  return source.toSource();
15
16
  }
16
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  var RENAME_MAP = {
7
8
  removeAriaLabel: 'removeLabel',
@@ -16,4 +17,3 @@ function transformer(file, api, options) {
16
17
  }
17
18
  return source.toSource();
18
19
  }
19
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  var RENAME_MAP = {
7
8
  inputAriaLabel: 'placeholder',
@@ -16,4 +17,3 @@ function transformer(file, api, options) {
16
17
  }
17
18
  return source.toSource();
18
19
  }
19
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  var ALLOWED_PLATFORM_LIST = ['android', 'ios', 'vkcom'];
6
7
  var wrapUnknownPlatformToVKUITokensClassName = function (unknownPlatform, appearance) { return "vkui--".concat(unknownPlatform, "--").concat(appearance); };
7
8
  exports.parser = 'tsx';
@@ -88,4 +89,3 @@ function transformer(file, api, options) {
88
89
  }
89
90
  return source.toSource();
90
91
  }
91
- exports.default = transformer;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parser = void 0;
4
- var codemod_helpers_1 = require("../codemod-helpers");
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
5
6
  exports.parser = 'tsx';
6
7
  function transformer(file, api, options) {
7
8
  var alias = options.alias;
@@ -21,4 +22,3 @@ function transformer(file, api, options) {
21
22
  });
22
23
  return source.toSource();
23
24
  }
24
- exports.default = transformer;