@atlaskit/codemod-cli 0.13.2 → 0.13.4

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 (36) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +117 -3
  3. package/dist/cjs/cli.js +70 -75
  4. package/dist/cjs/filepath.js +65 -29
  5. package/dist/cjs/index.js +3 -3
  6. package/dist/cjs/main.js +329 -167
  7. package/dist/cjs/presets/css-to-design-tokens/css-to-design-tokens.js +72 -31
  8. package/dist/cjs/presets/css-to-design-tokens/utils/legacy-colors.js +3 -3
  9. package/dist/cjs/presets/css-to-design-tokens/utils/meta.js +19 -6
  10. package/dist/cjs/presets/index.js +3 -1
  11. package/dist/cjs/presets/styled-to-emotion/styled-to-emotion.js +19 -12
  12. package/dist/cjs/presets/theme-remove-deprecated-mixins/theme-remove-deprecated-mixins.js +51 -36
  13. package/dist/cjs/presets/theme-remove-deprecated-mixins/utils/replacements.js +25 -25
  14. package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +66 -46
  15. package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +33 -18
  16. package/dist/cjs/presets/theme-to-design-tokens/utils/color.js +11 -7
  17. package/dist/cjs/presets/theme-to-design-tokens/utils/fuzzy-search.js +10 -6
  18. package/dist/cjs/presets/theme-to-design-tokens/utils/legacy-colors.js +3 -3
  19. package/dist/cjs/presets/theme-to-design-tokens/utils/named-colors.js +1 -1
  20. package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +16 -2
  21. package/dist/cjs/sinceRef.js +69 -35
  22. package/dist/cjs/transforms.js +44 -26
  23. package/dist/cjs/types.js +27 -3
  24. package/dist/cjs/utils.js +6 -6
  25. package/dist/es2019/cli.js +4 -0
  26. package/dist/es2019/main.js +2 -0
  27. package/dist/es2019/presets/css-to-design-tokens/css-to-design-tokens.js +1 -0
  28. package/dist/es2019/sinceRef.js +1 -0
  29. package/dist/esm/cli.js +4 -0
  30. package/dist/esm/main.js +3 -1
  31. package/dist/esm/presets/css-to-design-tokens/css-to-design-tokens.js +1 -0
  32. package/dist/esm/sinceRef.js +1 -0
  33. package/package.json +3 -3
  34. package/dist/cjs/version.json +0 -4
  35. package/dist/es2019/version.json +0 -4
  36. package/dist/esm/version.json +0 -4
package/dist/cjs/main.js CHANGED
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = main;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
12
  var _chalk = _interopRequireDefault(require("chalk"));
9
13
  var _fs = _interopRequireDefault(require("fs"));
10
14
  var _projectorSpawn = _interopRequireDefault(require("projector-spawn"));
@@ -15,208 +19,366 @@ var _transforms = require("./transforms");
15
19
  var _types = require("./types");
16
20
  var _sinceRef = require("./sinceRef");
17
21
  var _filepath = require("./filepath");
18
- const jscodeshift = require.resolve('.bin/jscodeshift');
19
- const applyTransformMeta = transforms => transforms.map(transform => {
20
- const moduleMatch = transform.dir.match(/\/@atlaskit\/[^\/]+\//);
21
- if (moduleMatch) {
22
- const moduleName = moduleMatch[0].substring(1, moduleMatch[0].length - 1);
23
- const transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
24
- return {
25
- ...transform,
26
- id: `${moduleName}: ${transformName}`
27
- };
28
- }
29
- const presetMatch = transform.dir.match(/\/codemod-cli\/.+\/presets/);
30
- if (presetMatch) {
31
- const transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
32
- return {
33
- ...transform,
34
- id: `@atlaskit/codemod-cli: ${transformName}`
35
- };
36
- }
37
- return {
38
- ...transform,
39
- id: `${transform.dir}/${transform.name}`
40
- };
41
- });
42
- const getTransformPrompt = async transforms => {
43
- const transformMeta = applyTransformMeta(transforms);
44
- return await new _enquirer.AutoComplete({
45
- message: 'Select which transform would you like to run? 🤔',
46
- limit: 18,
47
- choices: transformMeta.map(({
48
- id,
49
- name,
50
- dir
51
- }) => id ? id : `${dir}/${name}`),
52
- result: choice => transformMeta.find(({
53
- id,
54
- dir
55
- }) => id === choice || dir === choice)
56
- }).run();
57
- };
58
- const resolveTransform = async (flags, transforms) => {
59
- if (flags.preset) {
60
- const transform = transforms.find(({
61
- name
62
- }) => name === flags.preset);
63
- if (!transform) {
64
- console.warn(`No preset found for: ${_chalk.default.bgRed(flags.preset)}`);
65
- } else {
66
- return transform; // Return only if transform found.
22
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
+ var jscodeshift = require.resolve('.bin/jscodeshift');
28
+ var applyTransformMeta = function applyTransformMeta(transforms) {
29
+ return transforms.map(function (transform) {
30
+ var moduleMatch = transform.dir.match(/\/@atlaskit\/[^\/]+\//);
31
+ if (moduleMatch) {
32
+ var moduleName = moduleMatch[0].substring(1, moduleMatch[0].length - 1);
33
+ var transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
34
+ return _objectSpread(_objectSpread({}, transform), {}, {
35
+ id: "".concat(moduleName, ": ").concat(transformName)
36
+ });
67
37
  }
68
- }
69
-
70
- if (flags.transform && (0, _transforms.hasTransform)(flags.transform)) {
71
- return (0, _transforms.parseTransformPath)(flags.transform);
72
- }
73
- if (flags.transform && !(0, _transforms.hasTransform)(flags.transform)) {
74
- console.warn(`No available transform found for: ${_chalk.default.bgRed(flags.transform)}`);
75
- }
76
- return await getTransformPrompt(transforms);
77
- };
78
- const runTransform = async (filePaths, transform, flags) => {
79
- const {
80
- logger
81
- } = flags;
82
- logger.log(_chalk.default.green(`Running transform '${_chalk.default.bold(transform.name)}' over ${_chalk.default.bold(filePaths.join(', '))}...`));
83
- let codemodDirs = filePaths;
84
- if (flags.filterPaths) {
85
- logger.log(_chalk.default.green(`Running filtering logic for module ${transform.module}...`));
86
- codemodDirs = await (0, _filepath.findDependentPackagePaths)(filePaths, transform.module);
87
- if (codemodDirs.length === 0) {
88
- // Fallback to non-filter logic if filtering returns no directories
89
- logger.log(_chalk.default.yellow(`Could not filter source paths for ${transform.module}, falling back to running over all specified paths. (See --no-filter-paths flag)`));
90
- codemodDirs = filePaths;
91
- } else {
92
- logger.log(_chalk.default.green(`Running transform '${_chalk.default.bold(transform.name)}' over filtered dirs ${_chalk.default.bold(codemodDirs.join(', '))}...`));
38
+ var presetMatch = transform.dir.match(/\/codemod-cli\/.+\/presets/);
39
+ if (presetMatch) {
40
+ var _transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
41
+ return _objectSpread(_objectSpread({}, transform), {}, {
42
+ id: "@atlaskit/codemod-cli: ".concat(_transformName)
43
+ });
93
44
  }
94
- }
95
- logger.log(_chalk.default.green(`Transforming files matching these extensions '${_chalk.default.bold(flags.extensions)}'...`));
96
- const transformPath = (0, _transforms.getTransformPath)(transform);
97
-
98
- // Limit CPUs to 8 to prevent issues when running on CI with a large amount of cpus
99
- const args = [`--transform=${transformPath}`, `--ignore-pattern=${flags.ignorePattern}`, `--parser=${flags.parser}`, `--extensions=${flags.extensions}`, '--cpus=8', ...codemodDirs];
100
- if (flags.failOnError) {
101
- args.unshift('--fail-on-error');
102
- }
103
-
104
- // To avoid https://github.com/facebook/jscodeshift/issues/424 where the jscodeshift.js file is `CRLF` ending.
105
- // The workaround to use only the `node_modules` indicated in this ticket will not work as we run this code as CLI in products repository
106
- // that may not have jscodeshift installed.
107
- const jscodeshiftContent = _fs.default.readFileSync(jscodeshift, 'utf8');
108
- const jscodeshiftContentNew = (0, _utils.fixLineEnding)(jscodeshiftContent, 'LF');
109
- _fs.default.writeFileSync(jscodeshift, jscodeshiftContentNew);
110
- await (0, _projectorSpawn.default)(jscodeshift, args, {
111
- stdio: 'inherit'
45
+ return _objectSpread(_objectSpread({}, transform), {}, {
46
+ id: "".concat(transform.dir, "/").concat(transform.name)
47
+ });
112
48
  });
113
49
  };
114
- const parsePkg = pkg => {
50
+ var getTransformPrompt = /*#__PURE__*/function () {
51
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(transforms) {
52
+ var transformMeta;
53
+ return _regenerator.default.wrap(function _callee$(_context) {
54
+ while (1) switch (_context.prev = _context.next) {
55
+ case 0:
56
+ transformMeta = applyTransformMeta(transforms);
57
+ _context.next = 3;
58
+ return new _enquirer.AutoComplete({
59
+ message: 'Select which transform would you like to run? 🤔',
60
+ limit: 18,
61
+ choices: transformMeta.map(function (_ref2) {
62
+ var id = _ref2.id,
63
+ name = _ref2.name,
64
+ dir = _ref2.dir;
65
+ return id ? id : "".concat(dir, "/").concat(name);
66
+ }),
67
+ result: function result(choice) {
68
+ return transformMeta.find(function (_ref3) {
69
+ var id = _ref3.id,
70
+ dir = _ref3.dir;
71
+ return id === choice || dir === choice;
72
+ });
73
+ }
74
+ }).run();
75
+ case 3:
76
+ return _context.abrupt("return", _context.sent);
77
+ case 4:
78
+ case "end":
79
+ return _context.stop();
80
+ }
81
+ }, _callee);
82
+ }));
83
+ return function getTransformPrompt(_x) {
84
+ return _ref.apply(this, arguments);
85
+ };
86
+ }();
87
+ var resolveTransform = /*#__PURE__*/function () {
88
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(flags, transforms) {
89
+ var transform;
90
+ return _regenerator.default.wrap(function _callee2$(_context2) {
91
+ while (1) switch (_context2.prev = _context2.next) {
92
+ case 0:
93
+ if (!flags.preset) {
94
+ _context2.next = 7;
95
+ break;
96
+ }
97
+ transform = transforms.find(function (_ref5) {
98
+ var name = _ref5.name;
99
+ return name === flags.preset;
100
+ });
101
+ if (transform) {
102
+ _context2.next = 6;
103
+ break;
104
+ }
105
+ // eslint-disable-next-line no-console
106
+ console.warn("No preset found for: ".concat(_chalk.default.bgRed(flags.preset)));
107
+ _context2.next = 7;
108
+ break;
109
+ case 6:
110
+ return _context2.abrupt("return", transform);
111
+ case 7:
112
+ if (!(flags.transform && (0, _transforms.hasTransform)(flags.transform))) {
113
+ _context2.next = 9;
114
+ break;
115
+ }
116
+ return _context2.abrupt("return", (0, _transforms.parseTransformPath)(flags.transform));
117
+ case 9:
118
+ if (flags.transform && !(0, _transforms.hasTransform)(flags.transform)) {
119
+ // eslint-disable-next-line no-console
120
+ console.warn("No available transform found for: ".concat(_chalk.default.bgRed(flags.transform)));
121
+ }
122
+ _context2.next = 12;
123
+ return getTransformPrompt(transforms);
124
+ case 12:
125
+ return _context2.abrupt("return", _context2.sent);
126
+ case 13:
127
+ case "end":
128
+ return _context2.stop();
129
+ }
130
+ }, _callee2);
131
+ }));
132
+ return function resolveTransform(_x2, _x3) {
133
+ return _ref4.apply(this, arguments);
134
+ };
135
+ }();
136
+ var runTransform = /*#__PURE__*/function () {
137
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(filePaths, transform, flags) {
138
+ var logger, codemodDirs, transformPath, args, jscodeshiftContent, jscodeshiftContentNew;
139
+ return _regenerator.default.wrap(function _callee3$(_context3) {
140
+ while (1) switch (_context3.prev = _context3.next) {
141
+ case 0:
142
+ logger = flags.logger;
143
+ logger.log(_chalk.default.green("Running transform '".concat(_chalk.default.bold(transform.name), "' over ").concat(_chalk.default.bold(filePaths.join(', ')), "...")));
144
+ codemodDirs = filePaths;
145
+ if (!flags.filterPaths) {
146
+ _context3.next = 9;
147
+ break;
148
+ }
149
+ logger.log(_chalk.default.green("Running filtering logic for module ".concat(transform.module, "...")));
150
+ _context3.next = 7;
151
+ return (0, _filepath.findDependentPackagePaths)(filePaths, transform.module);
152
+ case 7:
153
+ codemodDirs = _context3.sent;
154
+ if (codemodDirs.length === 0) {
155
+ // Fallback to non-filter logic if filtering returns no directories
156
+ logger.log(_chalk.default.yellow("Could not filter source paths for ".concat(transform.module, ", falling back to running over all specified paths. (See --no-filter-paths flag)")));
157
+ codemodDirs = filePaths;
158
+ } else {
159
+ logger.log(_chalk.default.green("Running transform '".concat(_chalk.default.bold(transform.name), "' over filtered dirs ").concat(_chalk.default.bold(codemodDirs.join(', ')), "...")));
160
+ }
161
+ case 9:
162
+ logger.log(_chalk.default.green("Transforming files matching these extensions '".concat(_chalk.default.bold(flags.extensions), "'...")));
163
+ transformPath = (0, _transforms.getTransformPath)(transform); // Limit CPUs to 8 to prevent issues when running on CI with a large amount of cpus
164
+ args = ["--transform=".concat(transformPath), "--ignore-pattern=".concat(flags.ignorePattern), "--parser=".concat(flags.parser), "--extensions=".concat(flags.extensions), '--cpus=8'].concat((0, _toConsumableArray2.default)(codemodDirs));
165
+ if (flags.failOnError) {
166
+ args.unshift('--fail-on-error');
167
+ }
168
+
169
+ // To avoid https://github.com/facebook/jscodeshift/issues/424 where the jscodeshift.js file is `CRLF` ending.
170
+ // The workaround to use only the `node_modules` indicated in this ticket will not work as we run this code as CLI in products repository
171
+ // that may not have jscodeshift installed.
172
+ jscodeshiftContent = _fs.default.readFileSync(jscodeshift, 'utf8');
173
+ jscodeshiftContentNew = (0, _utils.fixLineEnding)(jscodeshiftContent, 'LF');
174
+ _fs.default.writeFileSync(jscodeshift, jscodeshiftContentNew);
175
+ _context3.next = 18;
176
+ return (0, _projectorSpawn.default)(jscodeshift, args, {
177
+ stdio: 'inherit'
178
+ });
179
+ case 18:
180
+ case "end":
181
+ return _context3.stop();
182
+ }
183
+ }, _callee3);
184
+ }));
185
+ return function runTransform(_x4, _x5, _x6) {
186
+ return _ref6.apply(this, arguments);
187
+ };
188
+ }();
189
+ var parsePkg = function parsePkg(pkg) {
115
190
  if (!pkg.startsWith('@')) {
116
191
  throw new _types.ValidationError('Package names must be fully qualified and begin with "@"');
117
192
  }
118
- let name = pkg;
119
- let version = null;
120
- const parts = pkg.split('@');
193
+ var name = pkg;
194
+ var version = null;
195
+ var parts = pkg.split('@');
121
196
  if (parts.length > 2) {
122
- name = `@${parts[1]}`;
197
+ name = "@".concat(parts[1]);
123
198
  version = parts[parts.length - 1];
124
199
  }
125
200
  return {
126
- name,
127
- version
201
+ name: name,
202
+ version: version
128
203
  };
129
204
  };
130
- const parsePackagesFlag = packages => {
205
+ var parsePackagesFlag = function parsePackagesFlag(packages) {
131
206
  return packages.split(',').map(parsePkg);
132
207
  };
133
- const validatePackages = (packages, errorCallback) => {
208
+ var validatePackages = function validatePackages(packages, errorCallback) {
134
209
  if (!packages) {
135
210
  return;
136
211
  }
137
- const errors = [];
138
- const transformedPackages = packages.map(pkg => {
139
- let version = null;
212
+ var errors = [];
213
+ var transformedPackages = packages.map(function (pkg) {
214
+ var version = null;
140
215
  if (pkg.version != null) {
141
216
  if (_semver.default.validRange(pkg.version)) {
142
217
  version = _semver.default.valid(_semver.default.minVersion(pkg.version));
143
218
  } else {
144
- errors.push(`Invalid version "${pkg.version}" for package "${pkg.name}"`);
219
+ errors.push("Invalid version \"".concat(pkg.version, "\" for package \"").concat(pkg.name, "\""));
145
220
  }
146
221
  }
147
- return {
148
- ...pkg,
149
- version
150
- };
222
+ return _objectSpread(_objectSpread({}, pkg), {}, {
223
+ version: version
224
+ });
151
225
  });
152
226
  if (errors.length > 0) {
153
227
  errorCallback && errorCallback(errors);
154
228
  }
155
229
  return transformedPackages;
156
230
  };
157
- const parseArgs = async (input, flags) => {
158
- let packages;
159
- if (!input[0]) {
160
- throw new _types.ValidationError('Please supply a path to the source files you wish to modify');
161
- }
162
- if (flags.packages) {
163
- const unvalidatedPackages = parsePackagesFlag(flags.packages);
164
- packages = validatePackages(unvalidatedPackages, errors => {
165
- throw new _types.ValidationError(errors.join('\n'));
166
- });
167
- } else if (flags.sinceRef) {
168
- const unvalidatedPackages = await (0, _sinceRef.getPackagesSinceRef)(flags.sinceRef);
169
- packages = validatePackages(unvalidatedPackages, errors => {
170
- throw new Error(`Detected invalid previous versions of packages upgraded since "${flags.sinceRef}". Previous versions must be valid semver.\n${errors.join('\n')}`);
171
- });
172
- }
173
- return {
174
- packages
231
+ var parseArgs = /*#__PURE__*/function () {
232
+ var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(input, flags) {
233
+ var packages, unvalidatedPackages, _unvalidatedPackages;
234
+ return _regenerator.default.wrap(function _callee4$(_context4) {
235
+ while (1) switch (_context4.prev = _context4.next) {
236
+ case 0:
237
+ if (input[0]) {
238
+ _context4.next = 2;
239
+ break;
240
+ }
241
+ throw new _types.ValidationError('Please supply a path to the source files you wish to modify');
242
+ case 2:
243
+ if (!flags.packages) {
244
+ _context4.next = 7;
245
+ break;
246
+ }
247
+ unvalidatedPackages = parsePackagesFlag(flags.packages);
248
+ packages = validatePackages(unvalidatedPackages, function (errors) {
249
+ throw new _types.ValidationError(errors.join('\n'));
250
+ });
251
+ _context4.next = 12;
252
+ break;
253
+ case 7:
254
+ if (!flags.sinceRef) {
255
+ _context4.next = 12;
256
+ break;
257
+ }
258
+ _context4.next = 10;
259
+ return (0, _sinceRef.getPackagesSinceRef)(flags.sinceRef);
260
+ case 10:
261
+ _unvalidatedPackages = _context4.sent;
262
+ packages = validatePackages(_unvalidatedPackages, function (errors) {
263
+ throw new Error("Detected invalid previous versions of packages upgraded since \"".concat(flags.sinceRef, "\". Previous versions must be valid semver.\n").concat(errors.join('\n')));
264
+ });
265
+ case 12:
266
+ return _context4.abrupt("return", {
267
+ packages: packages
268
+ });
269
+ case 13:
270
+ case "end":
271
+ return _context4.stop();
272
+ }
273
+ }, _callee4);
274
+ }));
275
+ return function parseArgs(_x7, _x8) {
276
+ return _ref7.apply(this, arguments);
175
277
  };
176
- };
177
- const defaultFlags = {
278
+ }();
279
+ var defaultFlags = {
178
280
  parser: 'babel',
179
281
  extensions: 'js',
180
282
  ignorePattern: 'node_modules',
181
283
  logger: console
182
284
  };
183
- async function main(input, userFlags) {
184
- const flags = {
185
- ...defaultFlags,
186
- ...userFlags
187
- };
188
- const logger = flags.logger;
189
- const {
190
- packages
191
- } = await parseArgs(input, flags);
192
- const {
193
- _PACKAGE_VERSION_ = '0.0.0-dev'
194
- } = process.env;
195
- logger.log(_chalk.default.bgBlue(_chalk.default.black(`📚 Atlassian-Frontend codemod library @ ${_PACKAGE_VERSION_} 📚`)));
196
- if (packages && packages.length > 0) {
197
- logger.log(_chalk.default.gray(`Searching for codemods for newer versions of the following packages: ${packages.map(pkg => `${pkg.name}${pkg.version ? '@' + pkg.version : ''}`)}`));
198
- }
199
- const shouldHavePackages = flags.sinceRef || flags.packages && flags.packages.length > 0;
200
- if (shouldHavePackages && (packages === null || packages === void 0 ? void 0 : packages.length) === 0) {
201
- logger.log(_chalk.default.gray(`Did not find updated packages, exiting`));
202
- return {
203
- transforms: []
204
- };
205
- }
206
- const availableTransforms = (0, _transforms.getTransforms)(packages);
207
- if (availableTransforms.length === 0) {
208
- throw new _types.NoTransformsExistError('No codemods available. Please make sure you have the latest version of the packages you are trying to upgrade before running the codemod');
209
- }
210
- const transforms = packages ? availableTransforms : [await resolveTransform(flags, availableTransforms)];
211
- const transformsWithModule = transforms.map(transform => ({
212
- ...transform,
213
- module: (0, _transforms.getTransformModule)(transform)
285
+ function main(_x9, _x10) {
286
+ return _main.apply(this, arguments);
287
+ }
288
+ function _main() {
289
+ _main = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(input, userFlags) {
290
+ var flags, logger, _yield$parseArgs, packages, _process$env$_PACKAGE, _PACKAGE_VERSION_, shouldHavePackages, availableTransforms, transforms, transformsWithModule, _iterator, _step, transform;
291
+ return _regenerator.default.wrap(function _callee5$(_context5) {
292
+ while (1) switch (_context5.prev = _context5.next) {
293
+ case 0:
294
+ flags = _objectSpread(_objectSpread({}, defaultFlags), userFlags);
295
+ logger = flags.logger;
296
+ _context5.next = 4;
297
+ return parseArgs(input, flags);
298
+ case 4:
299
+ _yield$parseArgs = _context5.sent;
300
+ packages = _yield$parseArgs.packages;
301
+ _process$env$_PACKAGE = "0.13.4", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
302
+ logger.log(_chalk.default.bgBlue(_chalk.default.black("\uD83D\uDCDA Atlassian-Frontend codemod library @ ".concat(_PACKAGE_VERSION_, " \uD83D\uDCDA"))));
303
+ if (packages && packages.length > 0) {
304
+ logger.log(_chalk.default.gray("Searching for codemods for newer versions of the following packages: ".concat(packages.map(function (pkg) {
305
+ return "".concat(pkg.name).concat(pkg.version ? '@' + pkg.version : '');
306
+ }))));
307
+ }
308
+ shouldHavePackages = flags.sinceRef || flags.packages && flags.packages.length > 0;
309
+ if (!(shouldHavePackages && (packages === null || packages === void 0 ? void 0 : packages.length) === 0)) {
310
+ _context5.next = 13;
311
+ break;
312
+ }
313
+ logger.log(_chalk.default.gray("Did not find updated packages, exiting"));
314
+ return _context5.abrupt("return", {
315
+ transforms: []
316
+ });
317
+ case 13:
318
+ availableTransforms = (0, _transforms.getTransforms)(packages);
319
+ if (!(availableTransforms.length === 0)) {
320
+ _context5.next = 16;
321
+ break;
322
+ }
323
+ throw new _types.NoTransformsExistError('No codemods available. Please make sure you have the latest version of the packages you are trying to upgrade before running the codemod');
324
+ case 16:
325
+ if (!packages) {
326
+ _context5.next = 20;
327
+ break;
328
+ }
329
+ _context5.t0 = availableTransforms;
330
+ _context5.next = 24;
331
+ break;
332
+ case 20:
333
+ _context5.next = 22;
334
+ return resolveTransform(flags, availableTransforms);
335
+ case 22:
336
+ _context5.t1 = _context5.sent;
337
+ _context5.t0 = [_context5.t1];
338
+ case 24:
339
+ transforms = _context5.t0;
340
+ transformsWithModule = transforms.map(function (transform) {
341
+ return _objectSpread(_objectSpread({}, transform), {}, {
342
+ module: (0, _transforms.getTransformModule)(transform)
343
+ });
344
+ });
345
+ logger.log(_chalk.default.cyan("Running the following transforms \n".concat(_chalk.default.bold(transformsWithModule.map(function (transform) {
346
+ return "".concat(transform.module, ": ").concat(transform.name);
347
+ }).join('\n')))));
348
+ _iterator = _createForOfIteratorHelper(transformsWithModule);
349
+ _context5.prev = 28;
350
+ _iterator.s();
351
+ case 30:
352
+ if ((_step = _iterator.n()).done) {
353
+ _context5.next = 36;
354
+ break;
355
+ }
356
+ transform = _step.value;
357
+ _context5.next = 34;
358
+ return runTransform(input, transform, flags);
359
+ case 34:
360
+ _context5.next = 30;
361
+ break;
362
+ case 36:
363
+ _context5.next = 41;
364
+ break;
365
+ case 38:
366
+ _context5.prev = 38;
367
+ _context5.t2 = _context5["catch"](28);
368
+ _iterator.e(_context5.t2);
369
+ case 41:
370
+ _context5.prev = 41;
371
+ _iterator.f();
372
+ return _context5.finish(41);
373
+ case 44:
374
+ return _context5.abrupt("return", {
375
+ transforms: transformsWithModule
376
+ });
377
+ case 45:
378
+ case "end":
379
+ return _context5.stop();
380
+ }
381
+ }, _callee5, null, [[28, 38, 41, 44]]);
214
382
  }));
215
- logger.log(_chalk.default.cyan(`Running the following transforms \n${_chalk.default.bold(transformsWithModule.map(transform => `${transform.module}: ${transform.name}`).join('\n'))}`));
216
- for (const transform of transformsWithModule) {
217
- await runTransform(input, transform, flags);
218
- }
219
- return {
220
- transforms: transformsWithModule
221
- };
383
+ return _main.apply(this, arguments);
222
384
  }