@atlaskit/codemod-cli 0.11.4 → 0.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/cjs/cli.js +0 -10
- package/dist/cjs/filepath.js +1 -15
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/main.js +7 -113
- package/dist/cjs/presets/css-to-design-tokens/css-to-design-tokens.js +21 -70
- package/dist/cjs/presets/css-to-design-tokens/utils/legacy-colors.js +0 -1
- package/dist/cjs/presets/css-to-design-tokens/utils/meta.js +0 -10
- package/dist/cjs/presets/index.js +1 -6
- package/dist/cjs/presets/styled-to-emotion/styled-to-emotion.js +1 -6
- package/dist/cjs/presets/theme-to-design-tokens/theme-to-design-tokens.js +4 -23
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast-meta.js +2 -16
- package/dist/cjs/presets/theme-to-design-tokens/utils/ast.js +0 -2
- package/dist/cjs/presets/theme-to-design-tokens/utils/color.js +2 -17
- package/dist/cjs/presets/theme-to-design-tokens/utils/fuzzy-search.js +38 -96
- package/dist/cjs/presets/theme-to-design-tokens/utils/tokens.js +0 -6
- package/dist/cjs/sinceRef.js +2 -23
- package/dist/cjs/transforms.js +4 -31
- package/dist/cjs/types.js +0 -19
- package/dist/cjs/utils.js +1 -14
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/filepath.js +7 -5
- package/dist/es2019/main.js +17 -51
- package/dist/es2019/presets/css-to-design-tokens/css-to-design-tokens.js +19 -51
- package/dist/es2019/presets/css-to-design-tokens/utils/legacy-colors.js +0 -1
- package/dist/es2019/presets/css-to-design-tokens/utils/meta.js +0 -6
- package/dist/es2019/presets/index.js +1 -1
- package/dist/es2019/presets/styled-to-emotion/styled-to-emotion.js +1 -4
- package/dist/es2019/presets/theme-to-design-tokens/theme-to-design-tokens.js +4 -14
- package/dist/es2019/presets/theme-to-design-tokens/utils/ast-meta.js +2 -11
- package/dist/es2019/presets/theme-to-design-tokens/utils/color.js +2 -7
- package/dist/es2019/presets/theme-to-design-tokens/utils/fuzzy-search.js +38 -95
- package/dist/es2019/presets/theme-to-design-tokens/utils/tokens.js +0 -1
- package/dist/es2019/sinceRef.js +2 -11
- package/dist/es2019/transforms.js +3 -13
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/utils.js +1 -12
- package/dist/es2019/version.json +1 -1
- package/dist/esm/cli.js +0 -2
- package/dist/esm/filepath.js +1 -9
- package/dist/esm/main.js +7 -98
- package/dist/esm/presets/css-to-design-tokens/css-to-design-tokens.js +22 -58
- package/dist/esm/presets/css-to-design-tokens/utils/legacy-colors.js +0 -1
- package/dist/esm/presets/css-to-design-tokens/utils/meta.js +0 -6
- package/dist/esm/presets/index.js +1 -1
- package/dist/esm/presets/styled-to-emotion/styled-to-emotion.js +1 -4
- package/dist/esm/presets/theme-to-design-tokens/theme-to-design-tokens.js +4 -15
- package/dist/esm/presets/theme-to-design-tokens/utils/ast-meta.js +2 -11
- package/dist/esm/presets/theme-to-design-tokens/utils/color.js +2 -7
- package/dist/esm/presets/theme-to-design-tokens/utils/fuzzy-search.js +38 -95
- package/dist/esm/presets/theme-to-design-tokens/utils/tokens.js +0 -1
- package/dist/esm/sinceRef.js +2 -16
- package/dist/esm/transforms.js +4 -14
- package/dist/esm/types.js +1 -11
- package/dist/esm/utils.js +1 -12
- package/dist/esm/version.json +1 -1
- package/package.json +2 -2
package/dist/es2019/utils.js
CHANGED
|
@@ -1,55 +1,44 @@
|
|
|
1
1
|
/* Utility functions to be used in codemod-cli. */
|
|
2
|
+
|
|
2
3
|
const returnLineEnding = source => {
|
|
3
4
|
var cr = source.split('\r').length;
|
|
4
5
|
var lf = source.split('\n').length;
|
|
5
6
|
var crlf = source.split('\r\n').length;
|
|
6
|
-
|
|
7
7
|
if (cr + lf === 0) {
|
|
8
8
|
return 'NONE';
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
if (crlf === cr && crlf === lf) {
|
|
12
11
|
return 'CRLF';
|
|
13
12
|
}
|
|
14
|
-
|
|
15
13
|
if (cr > lf) {
|
|
16
14
|
return 'CR';
|
|
17
15
|
} else {
|
|
18
16
|
return 'LF';
|
|
19
17
|
}
|
|
20
18
|
};
|
|
21
|
-
|
|
22
19
|
const getLineEndingRegex = type => {
|
|
23
20
|
if (['CR', 'LF', 'CRLF'].indexOf(type) === -1) {
|
|
24
21
|
throw new Error("Line ending '" + type + "' is not supported, use CR, LF or CRLF");
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
if (type === 'LF') {
|
|
28
24
|
return '\n';
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (type === 'CR') {
|
|
32
27
|
return '\r';
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
if (type === 'CRLF') {
|
|
36
30
|
return '\r\n';
|
|
37
31
|
}
|
|
38
32
|
};
|
|
39
|
-
|
|
40
33
|
export const fixLineEnding = (source, lineEnding) => {
|
|
41
34
|
const current = returnLineEnding(source);
|
|
42
|
-
|
|
43
35
|
if (current === lineEnding) {
|
|
44
36
|
return source;
|
|
45
37
|
}
|
|
46
|
-
|
|
47
38
|
const regexCurrentLineEnding = getLineEndingRegex(current);
|
|
48
39
|
const regexLineEnding = getLineEndingRegex(lineEnding);
|
|
49
|
-
|
|
50
40
|
if (current && regexLineEnding && regexCurrentLineEnding) {
|
|
51
41
|
return source.replace(new RegExp(regexCurrentLineEnding, 'g'), regexLineEnding);
|
|
52
42
|
}
|
|
53
|
-
|
|
54
43
|
return source;
|
|
55
44
|
};
|
package/dist/es2019/version.json
CHANGED
package/dist/esm/cli.js
CHANGED
|
@@ -7,7 +7,6 @@ import chalk from 'chalk';
|
|
|
7
7
|
export function run() {
|
|
8
8
|
return _run.apply(this, arguments);
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
function _run() {
|
|
12
11
|
_run = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
13
12
|
var cli;
|
|
@@ -64,7 +63,6 @@ function _run() {
|
|
|
64
63
|
process.exit(3);
|
|
65
64
|
}
|
|
66
65
|
});
|
|
67
|
-
|
|
68
66
|
case 2:
|
|
69
67
|
case "end":
|
|
70
68
|
return _context.stop();
|
package/dist/esm/filepath.js
CHANGED
|
@@ -3,12 +3,11 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
3
3
|
import { glob } from 'glob';
|
|
4
4
|
import { promises } from 'fs';
|
|
5
5
|
var readFile = promises.readFile;
|
|
6
|
-
/** Return products packages filePaths for running codemods from specified dependent package */
|
|
7
6
|
|
|
7
|
+
/** Return products packages filePaths for running codemods from specified dependent package */
|
|
8
8
|
export function findDependentPackagePaths(_x, _x2) {
|
|
9
9
|
return _findDependentPackagePaths.apply(this, arguments);
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
function _findDependentPackagePaths() {
|
|
13
12
|
_findDependentPackagePaths = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(crawlPaths, dependencyPackage) {
|
|
14
13
|
var searchStrings, globString, packageJsonPaths, productPackageJsonPathPromises, productPackageJsonPaths, productPackagePaths;
|
|
@@ -21,7 +20,6 @@ function _findDependentPackagePaths() {
|
|
|
21
20
|
//Replace leading './' due to bug with node-glob not properly ignoring files https://github.com/isaacs/node-glob/issues/309
|
|
22
21
|
return "".concat(crawlPath.replace(/^\.\//, ''), "/**/package.json");
|
|
23
22
|
}); // Convert array into glob string
|
|
24
|
-
|
|
25
23
|
globString = searchStrings.length > 1 ? "{".concat(searchStrings.join(','), "}") : searchStrings[0];
|
|
26
24
|
packageJsonPaths = glob.sync(globString, {
|
|
27
25
|
ignore: '**/node_modules/**',
|
|
@@ -35,16 +33,13 @@ function _findDependentPackagePaths() {
|
|
|
35
33
|
switch (_context.prev = _context.next) {
|
|
36
34
|
case 0:
|
|
37
35
|
fileContents = readFile(filePath, 'utf8'); // Grep for installedPackage
|
|
38
|
-
|
|
39
36
|
_context.next = 3;
|
|
40
37
|
return fileContents;
|
|
41
|
-
|
|
42
38
|
case 3:
|
|
43
39
|
isMatch = _context.sent.toString().split(/\n/).some(function (line) {
|
|
44
40
|
return line.match(dependencyPackage);
|
|
45
41
|
});
|
|
46
42
|
return _context.abrupt("return", isMatch && filePath);
|
|
47
|
-
|
|
48
43
|
case 5:
|
|
49
44
|
case "end":
|
|
50
45
|
return _context.stop();
|
|
@@ -52,14 +47,12 @@ function _findDependentPackagePaths() {
|
|
|
52
47
|
}
|
|
53
48
|
}, _callee);
|
|
54
49
|
}));
|
|
55
|
-
|
|
56
50
|
return function (_x3) {
|
|
57
51
|
return _ref.apply(this, arguments);
|
|
58
52
|
};
|
|
59
53
|
}());
|
|
60
54
|
_context2.next = 6;
|
|
61
55
|
return Promise.all(productPackageJsonPathPromises);
|
|
62
|
-
|
|
63
56
|
case 6:
|
|
64
57
|
productPackageJsonPaths = _context2.sent.filter(function (path) {
|
|
65
58
|
return path !== false;
|
|
@@ -69,7 +62,6 @@ function _findDependentPackagePaths() {
|
|
|
69
62
|
return line.replace('/package.json', '');
|
|
70
63
|
});
|
|
71
64
|
return _context2.abrupt("return", productPackagePaths);
|
|
72
|
-
|
|
73
65
|
case 9:
|
|
74
66
|
case "end":
|
|
75
67
|
return _context2.stop();
|
package/dist/esm/main.js
CHANGED
|
@@ -1,37 +1,26 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
-
|
|
5
4
|
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; } } }; }
|
|
6
|
-
|
|
7
5
|
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); }
|
|
8
|
-
|
|
9
6
|
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; }
|
|
10
|
-
|
|
11
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
|
-
|
|
13
8
|
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; }
|
|
14
|
-
|
|
15
9
|
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) { _defineProperty(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; }
|
|
16
|
-
|
|
17
10
|
import chalk from 'chalk';
|
|
18
11
|
import fs from 'fs';
|
|
19
12
|
import spawn from 'projector-spawn';
|
|
20
13
|
import { AutoComplete } from 'enquirer';
|
|
21
14
|
import semver from 'semver';
|
|
22
|
-
|
|
23
15
|
var jscodeshift = require.resolve('.bin/jscodeshift');
|
|
24
|
-
|
|
25
16
|
import { fixLineEnding } from './utils';
|
|
26
17
|
import { getTransforms, getTransformPath, hasTransform, parseTransformPath, getTransformModule } from './transforms';
|
|
27
18
|
import { ValidationError, NoTransformsExistError } from './types';
|
|
28
19
|
import { getPackagesSinceRef } from './sinceRef';
|
|
29
20
|
import { findDependentPackagePaths } from './filepath';
|
|
30
|
-
|
|
31
21
|
var applyTransformMeta = function applyTransformMeta(transforms) {
|
|
32
22
|
return transforms.map(function (transform) {
|
|
33
23
|
var moduleMatch = transform.dir.match(/\/@atlaskit\/[^\/]+\//);
|
|
34
|
-
|
|
35
24
|
if (moduleMatch) {
|
|
36
25
|
var moduleName = moduleMatch[0].substring(1, moduleMatch[0].length - 1);
|
|
37
26
|
var transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
|
|
@@ -39,23 +28,18 @@ var applyTransformMeta = function applyTransformMeta(transforms) {
|
|
|
39
28
|
id: "".concat(moduleName, ": ").concat(transformName)
|
|
40
29
|
});
|
|
41
30
|
}
|
|
42
|
-
|
|
43
31
|
var presetMatch = transform.dir.match(/\/codemod-cli\/.+\/presets/);
|
|
44
|
-
|
|
45
32
|
if (presetMatch) {
|
|
46
33
|
var _transformName = transform.name === 'index' ? transform.dir.slice(transform.dir.lastIndexOf('/') + 1) : transform.name;
|
|
47
|
-
|
|
48
34
|
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
49
35
|
id: "@atlaskit/codemod-cli: ".concat(_transformName)
|
|
50
36
|
});
|
|
51
37
|
}
|
|
52
|
-
|
|
53
38
|
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
54
39
|
id: "".concat(transform.dir, "/").concat(transform.name)
|
|
55
40
|
});
|
|
56
41
|
});
|
|
57
42
|
};
|
|
58
|
-
|
|
59
43
|
var getTransformPrompt = /*#__PURE__*/function () {
|
|
60
44
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(transforms) {
|
|
61
45
|
var transformMeta;
|
|
@@ -70,22 +54,20 @@ var getTransformPrompt = /*#__PURE__*/function () {
|
|
|
70
54
|
limit: 18,
|
|
71
55
|
choices: transformMeta.map(function (_ref2) {
|
|
72
56
|
var id = _ref2.id,
|
|
73
|
-
|
|
74
|
-
|
|
57
|
+
name = _ref2.name,
|
|
58
|
+
dir = _ref2.dir;
|
|
75
59
|
return id ? id : "".concat(dir, "/").concat(name);
|
|
76
60
|
}),
|
|
77
61
|
result: function result(choice) {
|
|
78
62
|
return transformMeta.find(function (_ref3) {
|
|
79
63
|
var id = _ref3.id,
|
|
80
|
-
|
|
64
|
+
dir = _ref3.dir;
|
|
81
65
|
return id === choice || dir === choice;
|
|
82
66
|
});
|
|
83
67
|
}
|
|
84
68
|
}).run();
|
|
85
|
-
|
|
86
69
|
case 3:
|
|
87
70
|
return _context.abrupt("return", _context.sent);
|
|
88
|
-
|
|
89
71
|
case 4:
|
|
90
72
|
case "end":
|
|
91
73
|
return _context.stop();
|
|
@@ -93,12 +75,10 @@ var getTransformPrompt = /*#__PURE__*/function () {
|
|
|
93
75
|
}
|
|
94
76
|
}, _callee);
|
|
95
77
|
}));
|
|
96
|
-
|
|
97
78
|
return function getTransformPrompt(_x) {
|
|
98
79
|
return _ref.apply(this, arguments);
|
|
99
80
|
};
|
|
100
81
|
}();
|
|
101
|
-
|
|
102
82
|
var resolveTransform = /*#__PURE__*/function () {
|
|
103
83
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(flags, transforms) {
|
|
104
84
|
var transform;
|
|
@@ -110,43 +90,33 @@ var resolveTransform = /*#__PURE__*/function () {
|
|
|
110
90
|
_context2.next = 7;
|
|
111
91
|
break;
|
|
112
92
|
}
|
|
113
|
-
|
|
114
93
|
transform = transforms.find(function (_ref5) {
|
|
115
94
|
var name = _ref5.name;
|
|
116
95
|
return name === flags.preset;
|
|
117
96
|
});
|
|
118
|
-
|
|
119
97
|
if (transform) {
|
|
120
98
|
_context2.next = 6;
|
|
121
99
|
break;
|
|
122
100
|
}
|
|
123
|
-
|
|
124
101
|
console.warn("No preset found for: ".concat(chalk.bgRed(flags.preset)));
|
|
125
102
|
_context2.next = 7;
|
|
126
103
|
break;
|
|
127
|
-
|
|
128
104
|
case 6:
|
|
129
105
|
return _context2.abrupt("return", transform);
|
|
130
|
-
|
|
131
106
|
case 7:
|
|
132
107
|
if (!(flags.transform && hasTransform(flags.transform))) {
|
|
133
108
|
_context2.next = 9;
|
|
134
109
|
break;
|
|
135
110
|
}
|
|
136
|
-
|
|
137
111
|
return _context2.abrupt("return", parseTransformPath(flags.transform));
|
|
138
|
-
|
|
139
112
|
case 9:
|
|
140
113
|
if (flags.transform && !hasTransform(flags.transform)) {
|
|
141
114
|
console.warn("No available transform found for: ".concat(chalk.bgRed(flags.transform)));
|
|
142
115
|
}
|
|
143
|
-
|
|
144
116
|
_context2.next = 12;
|
|
145
117
|
return getTransformPrompt(transforms);
|
|
146
|
-
|
|
147
118
|
case 12:
|
|
148
119
|
return _context2.abrupt("return", _context2.sent);
|
|
149
|
-
|
|
150
120
|
case 13:
|
|
151
121
|
case "end":
|
|
152
122
|
return _context2.stop();
|
|
@@ -154,12 +124,10 @@ var resolveTransform = /*#__PURE__*/function () {
|
|
|
154
124
|
}
|
|
155
125
|
}, _callee2);
|
|
156
126
|
}));
|
|
157
|
-
|
|
158
127
|
return function resolveTransform(_x2, _x3) {
|
|
159
128
|
return _ref4.apply(this, arguments);
|
|
160
129
|
};
|
|
161
130
|
}();
|
|
162
|
-
|
|
163
131
|
var runTransform = /*#__PURE__*/function () {
|
|
164
132
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(filePaths, transform, flags) {
|
|
165
133
|
var logger, codemodDirs, transformPath, args, jscodeshiftContent, jscodeshiftContentNew;
|
|
@@ -170,19 +138,15 @@ var runTransform = /*#__PURE__*/function () {
|
|
|
170
138
|
logger = flags.logger;
|
|
171
139
|
logger.log(chalk.green("Running transform '".concat(chalk.bold(transform.name), "' over ").concat(chalk.bold(filePaths.join(', ')), "...")));
|
|
172
140
|
codemodDirs = filePaths;
|
|
173
|
-
|
|
174
141
|
if (!flags.filterPaths) {
|
|
175
142
|
_context3.next = 9;
|
|
176
143
|
break;
|
|
177
144
|
}
|
|
178
|
-
|
|
179
145
|
logger.log(chalk.green("Running filtering logic for module ".concat(transform.module, "...")));
|
|
180
146
|
_context3.next = 7;
|
|
181
147
|
return findDependentPackagePaths(filePaths, transform.module);
|
|
182
|
-
|
|
183
148
|
case 7:
|
|
184
149
|
codemodDirs = _context3.sent;
|
|
185
|
-
|
|
186
150
|
if (codemodDirs.length === 0) {
|
|
187
151
|
// Fallback to non-filter logic if filtering returns no directories
|
|
188
152
|
logger.log(chalk.yellow("Could not filter source paths for ".concat(transform.module, ", falling back to running over all specified paths. (See --no-filter-paths flag)")));
|
|
@@ -190,20 +154,17 @@ var runTransform = /*#__PURE__*/function () {
|
|
|
190
154
|
} else {
|
|
191
155
|
logger.log(chalk.green("Running transform '".concat(chalk.bold(transform.name), "' over filtered dirs ").concat(chalk.bold(codemodDirs.join(', ')), "...")));
|
|
192
156
|
}
|
|
193
|
-
|
|
194
157
|
case 9:
|
|
195
158
|
logger.log(chalk.green("Transforming files matching these extensions '".concat(chalk.bold(flags.extensions), "'...")));
|
|
196
159
|
transformPath = getTransformPath(transform); // Limit CPUs to 8 to prevent issues when running on CI with a large amount of cpus
|
|
197
|
-
|
|
198
160
|
args = ["--transform=".concat(transformPath), "--ignore-pattern=".concat(flags.ignorePattern), "--parser=".concat(flags.parser), "--extensions=".concat(flags.extensions), '--cpus=8'].concat(_toConsumableArray(codemodDirs));
|
|
199
|
-
|
|
200
161
|
if (flags.failOnError) {
|
|
201
162
|
args.unshift('--fail-on-error');
|
|
202
|
-
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// To avoid https://github.com/facebook/jscodeshift/issues/424 where the jscodeshift.js file is `CRLF` ending.
|
|
203
166
|
// 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
|
|
204
167
|
// that may not have jscodeshift installed.
|
|
205
|
-
|
|
206
|
-
|
|
207
168
|
jscodeshiftContent = fs.readFileSync(jscodeshift, 'utf8');
|
|
208
169
|
jscodeshiftContentNew = fixLineEnding(jscodeshiftContent, 'LF');
|
|
209
170
|
fs.writeFileSync(jscodeshift, jscodeshiftContentNew);
|
|
@@ -211,7 +172,6 @@ var runTransform = /*#__PURE__*/function () {
|
|
|
211
172
|
return spawn(jscodeshift, args, {
|
|
212
173
|
stdio: 'inherit'
|
|
213
174
|
});
|
|
214
|
-
|
|
215
175
|
case 18:
|
|
216
176
|
case "end":
|
|
217
177
|
return _context3.stop();
|
|
@@ -219,45 +179,36 @@ var runTransform = /*#__PURE__*/function () {
|
|
|
219
179
|
}
|
|
220
180
|
}, _callee3);
|
|
221
181
|
}));
|
|
222
|
-
|
|
223
182
|
return function runTransform(_x4, _x5, _x6) {
|
|
224
183
|
return _ref6.apply(this, arguments);
|
|
225
184
|
};
|
|
226
185
|
}();
|
|
227
|
-
|
|
228
186
|
var parsePkg = function parsePkg(pkg) {
|
|
229
187
|
if (!pkg.startsWith('@')) {
|
|
230
188
|
throw new ValidationError('Package names must be fully qualified and begin with "@"');
|
|
231
189
|
}
|
|
232
|
-
|
|
233
190
|
var name = pkg;
|
|
234
191
|
var version = null;
|
|
235
192
|
var parts = pkg.split('@');
|
|
236
|
-
|
|
237
193
|
if (parts.length > 2) {
|
|
238
194
|
name = "@".concat(parts[1]);
|
|
239
195
|
version = parts[parts.length - 1];
|
|
240
196
|
}
|
|
241
|
-
|
|
242
197
|
return {
|
|
243
198
|
name: name,
|
|
244
199
|
version: version
|
|
245
200
|
};
|
|
246
201
|
};
|
|
247
|
-
|
|
248
202
|
var parsePackagesFlag = function parsePackagesFlag(packages) {
|
|
249
203
|
return packages.split(',').map(parsePkg);
|
|
250
204
|
};
|
|
251
|
-
|
|
252
205
|
var validatePackages = function validatePackages(packages, errorCallback) {
|
|
253
206
|
if (!packages) {
|
|
254
207
|
return;
|
|
255
208
|
}
|
|
256
|
-
|
|
257
209
|
var errors = [];
|
|
258
210
|
var transformedPackages = packages.map(function (pkg) {
|
|
259
211
|
var version = null;
|
|
260
|
-
|
|
261
212
|
if (pkg.version != null) {
|
|
262
213
|
if (semver.validRange(pkg.version)) {
|
|
263
214
|
version = semver.valid(semver.minVersion(pkg.version));
|
|
@@ -265,23 +216,18 @@ var validatePackages = function validatePackages(packages, errorCallback) {
|
|
|
265
216
|
errors.push("Invalid version \"".concat(pkg.version, "\" for package \"").concat(pkg.name, "\""));
|
|
266
217
|
}
|
|
267
218
|
}
|
|
268
|
-
|
|
269
219
|
return _objectSpread(_objectSpread({}, pkg), {}, {
|
|
270
220
|
version: version
|
|
271
221
|
});
|
|
272
222
|
});
|
|
273
|
-
|
|
274
223
|
if (errors.length > 0) {
|
|
275
224
|
errorCallback && errorCallback(errors);
|
|
276
225
|
}
|
|
277
|
-
|
|
278
226
|
return transformedPackages;
|
|
279
227
|
};
|
|
280
|
-
|
|
281
228
|
var parseArgs = /*#__PURE__*/function () {
|
|
282
229
|
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(input, flags) {
|
|
283
230
|
var packages, unvalidatedPackages, _unvalidatedPackages;
|
|
284
|
-
|
|
285
231
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
286
232
|
while (1) {
|
|
287
233
|
switch (_context4.prev = _context4.next) {
|
|
@@ -290,42 +236,34 @@ var parseArgs = /*#__PURE__*/function () {
|
|
|
290
236
|
_context4.next = 2;
|
|
291
237
|
break;
|
|
292
238
|
}
|
|
293
|
-
|
|
294
239
|
throw new ValidationError('Please supply a path to the source files you wish to modify');
|
|
295
|
-
|
|
296
240
|
case 2:
|
|
297
241
|
if (!flags.packages) {
|
|
298
242
|
_context4.next = 7;
|
|
299
243
|
break;
|
|
300
244
|
}
|
|
301
|
-
|
|
302
245
|
unvalidatedPackages = parsePackagesFlag(flags.packages);
|
|
303
246
|
packages = validatePackages(unvalidatedPackages, function (errors) {
|
|
304
247
|
throw new ValidationError(errors.join('\n'));
|
|
305
248
|
});
|
|
306
249
|
_context4.next = 12;
|
|
307
250
|
break;
|
|
308
|
-
|
|
309
251
|
case 7:
|
|
310
252
|
if (!flags.sinceRef) {
|
|
311
253
|
_context4.next = 12;
|
|
312
254
|
break;
|
|
313
255
|
}
|
|
314
|
-
|
|
315
256
|
_context4.next = 10;
|
|
316
257
|
return getPackagesSinceRef(flags.sinceRef);
|
|
317
|
-
|
|
318
258
|
case 10:
|
|
319
259
|
_unvalidatedPackages = _context4.sent;
|
|
320
260
|
packages = validatePackages(_unvalidatedPackages, function (errors) {
|
|
321
261
|
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')));
|
|
322
262
|
});
|
|
323
|
-
|
|
324
263
|
case 12:
|
|
325
264
|
return _context4.abrupt("return", {
|
|
326
265
|
packages: packages
|
|
327
266
|
});
|
|
328
|
-
|
|
329
267
|
case 13:
|
|
330
268
|
case "end":
|
|
331
269
|
return _context4.stop();
|
|
@@ -333,12 +271,10 @@ var parseArgs = /*#__PURE__*/function () {
|
|
|
333
271
|
}
|
|
334
272
|
}, _callee4);
|
|
335
273
|
}));
|
|
336
|
-
|
|
337
274
|
return function parseArgs(_x7, _x8) {
|
|
338
275
|
return _ref7.apply(this, arguments);
|
|
339
276
|
};
|
|
340
277
|
}();
|
|
341
|
-
|
|
342
278
|
var defaultFlags = {
|
|
343
279
|
parser: 'babel',
|
|
344
280
|
extensions: 'js',
|
|
@@ -348,11 +284,9 @@ var defaultFlags = {
|
|
|
348
284
|
export default function main(_x9, _x10) {
|
|
349
285
|
return _main.apply(this, arguments);
|
|
350
286
|
}
|
|
351
|
-
|
|
352
287
|
function _main() {
|
|
353
288
|
_main = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(input, userFlags) {
|
|
354
289
|
var flags, logger, _yield$parseArgs, packages, _process$env$_PACKAGE, _PACKAGE_VERSION_, shouldHavePackages, availableTransforms, transforms, transformsWithModule, _iterator, _step, transform;
|
|
355
|
-
|
|
356
290
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
357
291
|
while (1) {
|
|
358
292
|
switch (_context5.prev = _context5.next) {
|
|
@@ -361,59 +295,46 @@ function _main() {
|
|
|
361
295
|
logger = flags.logger;
|
|
362
296
|
_context5.next = 4;
|
|
363
297
|
return parseArgs(input, flags);
|
|
364
|
-
|
|
365
298
|
case 4:
|
|
366
299
|
_yield$parseArgs = _context5.sent;
|
|
367
300
|
packages = _yield$parseArgs.packages;
|
|
368
|
-
_process$env$_PACKAGE = "0.11.
|
|
301
|
+
_process$env$_PACKAGE = "0.11.5", _PACKAGE_VERSION_ = _process$env$_PACKAGE === void 0 ? '0.0.0-dev' : _process$env$_PACKAGE;
|
|
369
302
|
logger.log(chalk.bgBlue(chalk.black("\uD83D\uDCDA Atlassian-Frontend codemod library @ ".concat(_PACKAGE_VERSION_, " \uD83D\uDCDA"))));
|
|
370
|
-
|
|
371
303
|
if (packages && packages.length > 0) {
|
|
372
304
|
logger.log(chalk.gray("Searching for codemods for newer versions of the following packages: ".concat(packages.map(function (pkg) {
|
|
373
305
|
return "".concat(pkg.name).concat(pkg.version ? '@' + pkg.version : '');
|
|
374
306
|
}))));
|
|
375
307
|
}
|
|
376
|
-
|
|
377
308
|
shouldHavePackages = flags.sinceRef || flags.packages && flags.packages.length > 0;
|
|
378
|
-
|
|
379
309
|
if (!(shouldHavePackages && (packages === null || packages === void 0 ? void 0 : packages.length) === 0)) {
|
|
380
310
|
_context5.next = 13;
|
|
381
311
|
break;
|
|
382
312
|
}
|
|
383
|
-
|
|
384
313
|
logger.log(chalk.gray("Did not find updated packages, exiting"));
|
|
385
314
|
return _context5.abrupt("return", {
|
|
386
315
|
transforms: []
|
|
387
316
|
});
|
|
388
|
-
|
|
389
317
|
case 13:
|
|
390
318
|
availableTransforms = getTransforms(packages);
|
|
391
|
-
|
|
392
319
|
if (!(availableTransforms.length === 0)) {
|
|
393
320
|
_context5.next = 16;
|
|
394
321
|
break;
|
|
395
322
|
}
|
|
396
|
-
|
|
397
323
|
throw new NoTransformsExistError('No codemods available. Please make sure you have the latest version of the packages you are trying to upgrade before running the codemod');
|
|
398
|
-
|
|
399
324
|
case 16:
|
|
400
325
|
if (!packages) {
|
|
401
326
|
_context5.next = 20;
|
|
402
327
|
break;
|
|
403
328
|
}
|
|
404
|
-
|
|
405
329
|
_context5.t0 = availableTransforms;
|
|
406
330
|
_context5.next = 24;
|
|
407
331
|
break;
|
|
408
|
-
|
|
409
332
|
case 20:
|
|
410
333
|
_context5.next = 22;
|
|
411
334
|
return resolveTransform(flags, availableTransforms);
|
|
412
|
-
|
|
413
335
|
case 22:
|
|
414
336
|
_context5.t1 = _context5.sent;
|
|
415
337
|
_context5.t0 = [_context5.t1];
|
|
416
|
-
|
|
417
338
|
case 24:
|
|
418
339
|
transforms = _context5.t0;
|
|
419
340
|
transformsWithModule = transforms.map(function (transform) {
|
|
@@ -426,45 +347,33 @@ function _main() {
|
|
|
426
347
|
}).join('\n')))));
|
|
427
348
|
_iterator = _createForOfIteratorHelper(transformsWithModule);
|
|
428
349
|
_context5.prev = 28;
|
|
429
|
-
|
|
430
350
|
_iterator.s();
|
|
431
|
-
|
|
432
351
|
case 30:
|
|
433
352
|
if ((_step = _iterator.n()).done) {
|
|
434
353
|
_context5.next = 36;
|
|
435
354
|
break;
|
|
436
355
|
}
|
|
437
|
-
|
|
438
356
|
transform = _step.value;
|
|
439
357
|
_context5.next = 34;
|
|
440
358
|
return runTransform(input, transform, flags);
|
|
441
|
-
|
|
442
359
|
case 34:
|
|
443
360
|
_context5.next = 30;
|
|
444
361
|
break;
|
|
445
|
-
|
|
446
362
|
case 36:
|
|
447
363
|
_context5.next = 41;
|
|
448
364
|
break;
|
|
449
|
-
|
|
450
365
|
case 38:
|
|
451
366
|
_context5.prev = 38;
|
|
452
367
|
_context5.t2 = _context5["catch"](28);
|
|
453
|
-
|
|
454
368
|
_iterator.e(_context5.t2);
|
|
455
|
-
|
|
456
369
|
case 41:
|
|
457
370
|
_context5.prev = 41;
|
|
458
|
-
|
|
459
371
|
_iterator.f();
|
|
460
|
-
|
|
461
372
|
return _context5.finish(41);
|
|
462
|
-
|
|
463
373
|
case 44:
|
|
464
374
|
return _context5.abrupt("return", {
|
|
465
375
|
transforms: transformsWithModule
|
|
466
376
|
});
|
|
467
|
-
|
|
468
377
|
case 45:
|
|
469
378
|
case "end":
|
|
470
379
|
return _context5.stop();
|