Skip to content

Commit b9a751d

Browse files
committed
Feat: update rcs-core and add parserOptions in processJs (closes #16)
1 parent 448747a commit b9a751d

File tree

7 files changed

+61
-39
lines changed

7 files changed

+61
-39
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ Options:
258258
- cwd (string): the working directory in which to seach. Default is `process.cwd()`
259259
- newPath (string): in which folder the new files should go. Default is `rcs`
260260
- flatten (boolean): flatten the hierarchie - no subfolders. Default is `false`
261-
- jsx (boolean): if the file is a react jsx file. Default is `false`
261+
- parserOptions (object): all available options from `espree`: Default is [here](https://github.com/JPeer264/node-rcs-core/blob/master/docs/api/replace.md#js)
262262

263263
Example:
264264

lib/process/process.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,14 @@ const rcsProcess = (pathString, options, cb) => {
117117
if (err) return callback(err);
118118

119119
// check wether to replace javascript files or not
120-
if (options.replaceJs) {
121-
data = rcs.replace.js(bufferData);
122-
} else {
123-
data = rcs.replace.any(bufferData);
120+
try {
121+
if (options.replaceJs) {
122+
data = rcs.replace.js(bufferData, options.parserOptions);
123+
} else {
124+
data = rcs.replace.any(bufferData);
125+
}
126+
} catch (e) {
127+
return callback(e);
124128
}
125129

126130
const joinedPath = path.join(options.newPath, filePath);

lib/processJs/tests/processJs.spec.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ describe('processJs/processJs', () => {
4444
processJs('js/react.txt', {
4545
newPath: testCwd,
4646
cwd: fixturesCwd,
47-
jsx: true,
4847
}, err => {
4948
let newFile = fs.readFileSync(testCwd + '/js/react.txt', 'utf8');
5049
let expectedFile = fs.readFileSync(resultsCwd + '/js/react.txt', 'utf8');
@@ -60,12 +59,13 @@ describe('processJs/processJs', () => {
6059
processJs('js/react.txt', {
6160
newPath: testCwd,
6261
cwd: fixturesCwd,
62+
parserOptions: {
63+
ecmaFeatures: {
64+
jsx: false,
65+
},
66+
},
6367
}, err => {
64-
let newFile = fs.readFileSync(testCwd + '/js/react.txt', 'utf8');
65-
let expectedFile = fs.readFileSync(testCwd + '/js/react.txt', 'utf8');
66-
67-
expect(err).to.not.exist;
68-
expect(newFile).to.equal(expectedFile);
68+
expect(err).to.exist;
6969

7070
done();
7171
});
@@ -77,7 +77,7 @@ describe('processJs/processJs', () => {
7777
cwd: fixturesCwd,
7878
}, err => {
7979
let newFile = fs.readFileSync(testCwd + '/js/complex.txt', 'utf8');
80-
let expectedFile = fs.readFileSync(testCwd + '/js/complex.txt', 'utf8');
80+
let expectedFile = fs.readFileSync(resultsCwd + '/js/complex.txt', 'utf8');
8181

8282
expect(err).to.not.exist;
8383
expect(newFile).to.equal(expectedFile);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"glob": "^7.1.1",
4040
"json-extra": "^0.5.0",
4141
"lodash": "^4.17.4",
42-
"rcs-core": "^2.0.1"
42+
"rcs-core": "^2.1.0"
4343
},
4444
"devDependencies": {
4545
"chai": "^3.5.0",

test/files/fixtures/js/main.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,11 @@ $(".jp-block");
44
// vanillaJS example
55
document.getElementsByClassName(" jp-block__element");
66
document.getElementById("jp-block__element--modifier");
7+
8+
const restSpread = {
9+
weirdFormatting: true,
10+
shouldRest: true,
11+
};
12+
13+
const extended = { ...restSpread };
14+
const { ...options } = extended;

test/files/results/js/main.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,11 @@ $(".a");
44
// vanillaJS example
55
document.getElementsByClassName(" b");
66
document.getElementById("c");
7+
8+
const restSpread = {
9+
weirdFormatting: true,
10+
shouldRest: true,
11+
};
12+
13+
const extended = { ...restSpread };
14+
const { ...options } = extended;

yarn.lock

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ acorn@^5.0.1:
2020
version "5.0.3"
2121
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
2222

23+
acorn@^5.5.0:
24+
version "5.7.1"
25+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
26+
2327
ajv-keywords@^1.0.0:
2428
version "1.5.1"
2529
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@@ -127,9 +131,9 @@ ast-traverse@^0.1.1:
127131
version "0.1.1"
128132
resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6"
129133

130-
ast-types@0.9.11:
131-
version "0.9.11"
132-
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9"
134+
ast-types@0.11.5:
135+
version "0.11.5"
136+
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28"
133137

134138
[email protected], async@^1.4.0:
135139
version "1.5.2"
@@ -342,10 +346,6 @@ contains-path@^0.1.0:
342346
version "0.1.0"
343347
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
344348

345-
core-js@^2.4.1:
346-
version "2.4.1"
347-
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
348-
349349
core-util-is@~1.0.0:
350350
version "1.0.2"
351351
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -572,18 +572,21 @@ espree@^3.4.3:
572572
acorn "^5.0.1"
573573
acorn-jsx "^3.0.0"
574574

575+
espree@^3.5.4:
576+
version "3.5.4"
577+
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
578+
dependencies:
579+
acorn "^5.5.0"
580+
acorn-jsx "^3.0.0"
581+
575582
[email protected], esprima@^2.6.0, esprima@^2.7.1:
576583
version "2.7.3"
577584
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
578585

579-
esprima@^4.0.0:
586+
esprima@^4.0.0, esprima@~4.0.0:
580587
version "4.0.0"
581588
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
582589

583-
esprima@~3.1.0:
584-
version "3.1.3"
585-
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
586-
587590
esquery@^1.0.0:
588591
version "1.0.0"
589592
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
@@ -1452,20 +1455,20 @@ qs@~6.2.0:
14521455
version "6.2.1"
14531456
resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625"
14541457

1455-
rcs-core@^2.0.1:
1456-
version "2.0.1"
1457-
resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-2.0.1.tgz#b4ec1b9b5e3a3919397ca0dfc68779d22a358e75"
1458+
rcs-core@^2.1.0:
1459+
version "2.1.0"
1460+
resolved "https://registry.yarnpkg.com/rcs-core/-/rcs-core-2.1.0.tgz#eb5fcfdeaf53e79e94a00fc9f8f56b3c253cdf4e"
14581461
dependencies:
14591462
array-includes "^3.0.2"
14601463
ast-traverse "^0.1.1"
14611464
decimal-to-any "1.0.0"
1462-
espree "^3.4.3"
1465+
espree "^3.5.4"
14631466
fs-extra "^2.0.0"
14641467
json-extra "^0.5.0"
14651468
lodash.merge "^4.6.1"
14661469
object.entries "^1.0.4"
14671470
postcss "^6.0.17"
1468-
recast "^0.12.5"
1471+
recast "^0.15.0"
14691472

14701473
read-pkg-up@^2.0.0:
14711474
version "2.0.0"
@@ -1505,15 +1508,14 @@ readable-stream@~2.0.5:
15051508
string_decoder "~0.10.x"
15061509
util-deprecate "~1.0.1"
15071510

1508-
recast@^0.12.5:
1509-
version "0.12.5"
1510-
resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.5.tgz#1f21a04f0ffd8dea35c222492ffcfe3201c1e977"
1511+
recast@^0.15.0:
1512+
version "0.15.0"
1513+
resolved "https://registry.yarnpkg.com/recast/-/recast-0.15.0.tgz#b8c8bfdda245e1580c0a4d9fc25d4e820bf57208"
15111514
dependencies:
1512-
ast-types "0.9.11"
1513-
core-js "^2.4.1"
1514-
esprima "~3.1.0"
1515+
ast-types "0.11.5"
1516+
esprima "~4.0.0"
15151517
private "~0.1.5"
1516-
source-map "~0.5.0"
1518+
source-map "~0.6.1"
15171519

15181520
repeat-string@^1.5.2:
15191521
version "1.6.1"
@@ -1629,7 +1631,7 @@ source-map@^0.4.4:
16291631
dependencies:
16301632
amdefine ">=0.0.4"
16311633

1632-
source-map@^0.6.1:
1634+
source-map@^0.6.1, source-map@~0.6.1:
16331635
version "0.6.1"
16341636
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
16351637

@@ -1639,7 +1641,7 @@ source-map@~0.2.0:
16391641
dependencies:
16401642
amdefine ">=0.0.4"
16411643

1642-
source-map@~0.5.0, source-map@~0.5.1:
1644+
source-map@~0.5.1:
16431645
version "0.5.6"
16441646
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
16451647

0 commit comments

Comments
 (0)