Skip to content

Commit eea54a2

Browse files
committed
feat: follow Fred's advice, replace esprima with cherow
1 parent 96d9c4d commit eea54a2

4 files changed

Lines changed: 10 additions & 10 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@
4242
"@babel/core": "^7.2.0",
4343
"@babel/plugin-transform-modules-amd": "^7.2.0",
4444
"ast-matcher": "^1.0.1",
45+
"cherow": "^1.6.8",
4546
"del": "^3.0.0",
4647
"dumber-module-loader": "^0.14.0",
4748
"escope": "^3.6.0",
48-
"esprima": "^4.0.1",
4949
"mkdirp": "^0.5.1",
5050
"node-fetch": "^2.3.0",
5151
"node-libs-browser": "^2.1.0"

src/ensure-parser-set.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import {parseModule} from 'esprima';
1+
import {parse} from 'cherow';
22
import astMatcher from 'ast-matcher';
33

4-
function parser (contents) {
4+
function _parser (contents) {
55
// Turn on range to get position info in scope analysis.
66
// Do not need to turn on JSX, dumber is designed to be
77
// small, supposes to be used after transpiling.
8-
return parseModule(contents, {range: true});
8+
return parse(contents, {ranges: true, loc: true, module: true});
99
}
1010

1111
if (!astMatcher.__amd_parser_set) {
12-
astMatcher.setParser(parser);
12+
astMatcher.setParser(_parser);
1313
astMatcher.__amd_parser_set = true;
1414
}

src/transformers/defines.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ function ensureNamedDefine (moduleId, amdContents) {
149149

150150
let namedDefine;
151151
let needsScanDeps = true;
152-
let firstArgLoc = args[0].range[0];
152+
let firstArgLoc = args[0].start; // .start for cherow, .range[0] for esprima
153153

154154
if (args[0].type === 'Literal') {
155155
// already has named define
@@ -223,9 +223,9 @@ function ensureNamedDefine (moduleId, amdContents) {
223223
}
224224

225225
if (cjsDeps.length) {
226-
amdContents = amdContents.substring(0, factory.range[0]) +
226+
amdContents = amdContents.substring(0, factory.start) + // .start for cherow, .range[0], for esprima
227227
depsString(cjsDeps) + ',' +
228-
amdContents.substring(factory.range[0]);
228+
amdContents.substring(factory.start); // .start for cherow, .range[0], for esprima
229229
}
230230
}
231231

src/transformers/replace.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ export default function(contents, replacement) {
3939

4040
if (node.value !== dep) {
4141
toReplace.push({
42-
start: node.range[0],
43-
end: node.range[1],
42+
start: node.start, // .start for cherow, .range[0] for esprima
43+
end: node.end, // .end cherow, .range[1] for esprima
4444
text: `'${dep}'`
4545
});
4646
}

0 commit comments

Comments
 (0)