UNPKG

671 BJavaScriptView Raw
1var babel = require("babel-core");
2
3function parseNode(node) {
4 if (!node) {
5 return;
6 }
7
8 if (node.type === "CallExpression" && node.callee.name === "require") {
9 return node.arguments[0].value;
10 }
11
12 if (node.type === "ExpressionStatement") {
13 return parseNode(node.expression);
14 }
15
16 if (node.type === "ImportDeclaration") {
17 return node.source.value;
18 }
19
20 if (node.type === "VariableDeclaration") {
21 return parseNode(node.declarations[0].init);
22 }
23};
24
25module.exports.parse = function parse(source) {
26 var result = babel.transform(source);
27 var dependencies = result.ast.program.body.map(parseNode).filter(Boolean);
28
29 return dependencies;
30};