1 | var falafel = require('falafel');
|
2 | module.exports = replace;
|
3 |
|
4 | function replace (src, deps) {
|
5 | return falafel(src, function (node) {
|
6 | if (isRequire(node)) {
|
7 | var value = node.arguments[0].value;
|
8 | if (has(deps, value) && deps[value]) {
|
9 | node.update('require(' + JSON.stringify(deps[value]) + ')');
|
10 | }
|
11 | }
|
12 | }).toString();
|
13 | }
|
14 |
|
15 | function isRequire (node) {
|
16 | var c = node.callee;
|
17 | return c
|
18 | && node.type === 'CallExpression'
|
19 | && c.type === 'Identifier'
|
20 | && c.name === 'require'
|
21 | && node.arguments[0]
|
22 | && node.arguments[0].type === 'Literal'
|
23 | ;
|
24 | }
|
25 |
|
26 | function has (obj, key) {
|
27 | return Object.prototype.hasOwnProperty.call(obj, key);
|
28 | }
|