1 | var traverse = require("./traverse");
|
2 | var comparify = require("comparify");
|
3 | var optionsNormalize = require("./options_normalize");
|
4 | var getAst = require("./get_ast");
|
5 |
|
6 | function isRequire(obj) {
|
7 | return comparify(obj, {
|
8 | "type": "CallExpression",
|
9 | "callee": {
|
10 | "type": "Identifier",
|
11 | "name": "require"
|
12 | }
|
13 | });
|
14 | }
|
15 |
|
16 | module.exports = function(load, options){
|
17 | var ast = getAst(load);
|
18 |
|
19 | traverse(ast, function(obj){
|
20 | if(isRequire(obj)) {
|
21 | var arg = obj.arguments[0];
|
22 | if(arg.type === "Literal") {
|
23 | var val = arg.value;
|
24 | arg.value = optionsNormalize(options, val, load.name, load.address);
|
25 | arg.raw = '"'+arg.value+'"';
|
26 | }
|
27 |
|
28 | return false;
|
29 | }
|
30 | });
|
31 |
|
32 | return ast;
|
33 | };
|