UNPKG

736 BJavaScriptView Raw
1var falafel = require('falafel');
2module.exports = replace;
3
4function 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
15function 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
26function has (obj, key) {
27 return Object.prototype.hasOwnProperty.call(obj, key);
28}