Skip to content

Commit a5776f7

Browse files
author
Robert Jackson
committed
Add runTransform public API.
1 parent 656300a commit a5776f7

4 files changed

Lines changed: 115 additions & 4 deletions

File tree

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@
1111
"test": "qunit tests/**/*-test.js"
1212
},
1313
"dependencies": {
14+
"chalk": "^2.4.1",
1415
"common-tags": "^1.8.0",
16+
"execa": "^0.10.0",
1517
"fs-extra": "^6.0.1",
18+
"globby": "^8.0.1",
1619
"import-cwd": "^2.1.0",
1720
"import-local": "^1.0.0",
1821
"jscodeshift": "^0.5.1",
@@ -26,7 +29,6 @@
2629
"eslint-config-prettier": "^2.9.0",
2730
"eslint-plugin-node": "^6.0.1",
2831
"eslint-plugin-prettier": "^2.6.0",
29-
"execa": "^0.10.0",
3032
"jest": "^23.1.0",
3133
"lerna-changelog": "^0.8.0",
3234
"prettier": "^1.13.5",

src/bin-support.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
function runTransform(binRoot, transformName, paths) {
4+
const globby = require('globby');
5+
const execa = require('execa');
6+
const chalk = require('chalk');
7+
const path = require('path');
8+
9+
return globby(paths)
10+
.then(paths => {
11+
let transformPath = path.join(binRoot, '..', 'transforms', transformName, 'index.js');
12+
13+
return execa('jscodeshift', ['-t', transformPath, '--extensions', 'js,ts', ...paths], {
14+
stdio: 'inherit',
15+
});
16+
})
17+
.catch(error => {
18+
console.error(chalk.red(error.stack)); // eslint-disable-line no-console
19+
process.exitCode = 1;
20+
21+
throw error;
22+
});
23+
}
24+
25+
module.exports = {
26+
runTransform,
27+
};

src/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
'use strict';
22

33
const TestSupport = require('./test-support');
4+
const BinSupport = require('./bin-support');
45

56
module.exports = {
67
runTransformTest: TestSupport.runTransformTest,
8+
runTransform: BinSupport.runTransform,
79
};

yarn.lock

Lines changed: 83 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
esutils "^2.0.2"
1717
js-tokens "^3.0.0"
1818

19+
"@mrmlnc/readdir-enhanced@^2.2.1":
20+
version "2.2.1"
21+
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
22+
dependencies:
23+
call-me-maybe "^1.0.1"
24+
glob-to-regexp "^0.3.0"
25+
26+
"@nodelib/fs.stat@^1.0.1":
27+
version "1.1.0"
28+
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a"
29+
1930
"@types/node@*":
2031
version "10.3.4"
2132
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.4.tgz#c74e8aec19e555df44609b8057311052a2c84d9e"
@@ -1025,6 +1036,10 @@ cache-base@^1.0.1:
10251036
union-value "^1.0.0"
10261037
unset-value "^1.0.0"
10271038

1039+
call-me-maybe@^1.0.1:
1040+
version "1.0.1"
1041+
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
1042+
10281043
caller-path@^0.1.0:
10291044
version "0.1.0"
10301045
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1432,6 +1447,13 @@ diff@^3.2.0:
14321447
version "3.5.0"
14331448
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
14341449

1450+
dir-glob@^2.0.0:
1451+
version "2.0.0"
1452+
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
1453+
dependencies:
1454+
arrify "^1.0.1"
1455+
path-type "^3.0.0"
1456+
14351457
doctrine@^2.1.0:
14361458
version "2.1.0"
14371459
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
@@ -1796,6 +1818,17 @@ fast-diff@^1.1.1:
17961818
version "1.1.2"
17971819
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
17981820

1821+
fast-glob@^2.0.2:
1822+
version "2.2.2"
1823+
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf"
1824+
dependencies:
1825+
"@mrmlnc/readdir-enhanced" "^2.2.1"
1826+
"@nodelib/fs.stat" "^1.0.1"
1827+
glob-parent "^3.1.0"
1828+
is-glob "^4.0.0"
1829+
merge2 "^1.2.1"
1830+
micromatch "^3.1.10"
1831+
17991832
fast-json-stable-stringify@^2.0.0:
18001833
version "2.0.0"
18011834
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
@@ -2079,6 +2112,17 @@ glob-parent@^2.0.0:
20792112
dependencies:
20802113
is-glob "^2.0.0"
20812114

2115+
glob-parent@^3.1.0:
2116+
version "3.1.0"
2117+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
2118+
dependencies:
2119+
is-glob "^3.1.0"
2120+
path-dirname "^1.0.0"
2121+
2122+
glob-to-regexp@^0.3.0:
2123+
version "0.3.0"
2124+
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
2125+
20822126
glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
20832127
version "7.1.2"
20842128
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
@@ -2143,6 +2187,18 @@ globby@^5.0.0:
21432187
pify "^2.0.0"
21442188
pinkie-promise "^2.0.0"
21452189

2190+
globby@^8.0.1:
2191+
version "8.0.1"
2192+
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50"
2193+
dependencies:
2194+
array-union "^1.0.1"
2195+
dir-glob "^2.0.0"
2196+
fast-glob "^2.0.2"
2197+
glob "^7.1.2"
2198+
ignore "^3.3.5"
2199+
pify "^3.0.0"
2200+
slash "^1.0.0"
2201+
21462202
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
21472203
version "4.1.11"
21482204
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
@@ -2319,7 +2375,7 @@ ignore-walk@^3.0.1:
23192375
dependencies:
23202376
minimatch "^3.0.4"
23212377

2322-
ignore@^3.3.3, ignore@^3.3.6:
2378+
ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6:
23232379
version "3.3.10"
23242380
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
23252381

@@ -2492,7 +2548,7 @@ is-extglob@^1.0.0:
24922548
version "1.0.0"
24932549
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
24942550

2495-
is-extglob@^2.1.0:
2551+
is-extglob@^2.1.0, is-extglob@^2.1.1:
24962552
version "2.1.1"
24972553
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
24982554

@@ -2528,6 +2584,12 @@ is-glob@^3.1.0:
25282584
dependencies:
25292585
is-extglob "^2.1.0"
25302586

2587+
is-glob@^4.0.0:
2588+
version "4.0.0"
2589+
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
2590+
dependencies:
2591+
is-extglob "^2.1.1"
2592+
25312593
is-number@^2.1.0:
25322594
version "2.1.0"
25332595
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -3274,6 +3336,10 @@ merge-stream@^1.0.1:
32743336
dependencies:
32753337
readable-stream "^2.0.1"
32763338

3339+
merge2@^1.2.1:
3340+
version "1.2.2"
3341+
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34"
3342+
32773343
merge@^1.1.3:
32783344
version "1.2.0"
32793345
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
@@ -3296,7 +3362,7 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7:
32963362
parse-glob "^3.0.4"
32973363
regex-cache "^0.4.2"
32983364

3299-
micromatch@^3.0.4, micromatch@^3.1.4, micromatch@^3.1.8:
3365+
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
33003366
version "3.1.10"
33013367
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
33023368
dependencies:
@@ -3748,6 +3814,10 @@ pascalcase@^0.1.1:
37483814
version "0.1.1"
37493815
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
37503816

3817+
path-dirname@^1.0.0:
3818+
version "1.0.2"
3819+
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
3820+
37513821
path-exists@^2.0.0:
37523822
version "2.1.0"
37533823
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
@@ -3786,6 +3856,12 @@ path-type@^1.0.0:
37863856
pify "^2.0.0"
37873857
pinkie-promise "^2.0.0"
37883858

3859+
path-type@^3.0.0:
3860+
version "3.0.0"
3861+
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
3862+
dependencies:
3863+
pify "^3.0.0"
3864+
37893865
performance-now@^2.1.0:
37903866
version "2.1.0"
37913867
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -3794,6 +3870,10 @@ pify@^2.0.0:
37943870
version "2.3.0"
37953871
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
37963872

3873+
pify@^3.0.0:
3874+
version "3.0.0"
3875+
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
3876+
37973877
pinkie-promise@^2.0.0:
37983878
version "2.0.1"
37993879
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"

0 commit comments

Comments
 (0)