Advertisement
Guest User

Untitled

a guest
Sep 20th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. var file = process.argv[2],
  2. colors = require('colors'),
  3. fs = require('fs'),
  4. esprima = require('esprima'),
  5. estraverse = require('estraverse'),
  6. curdir = String(process.cwd() + '/' + process.argv[2]).split('/').slice(0, -1).join('/');
  7.  
  8. hapi = require('hapi');
  9.  
  10. console.log(curdir.green);
  11.  
  12. var requires = {};
  13.  
  14. function getRequires(file, scope) {
  15. console.log(file.green);
  16.  
  17. // console.log(('processing ' + file + '\n').blue);
  18.  
  19. scope = scope||'-';
  20.  
  21. var input = fs.readFileSync(file),
  22. vars = {},
  23. req = {};
  24. var ast = esprima.parse(input);
  25. estraverse.traverse(ast, {
  26. enter: function (node) {
  27. if (node.type == 'VariableDeclarator' && node.init) {
  28. if (node.init.type == 'Literal') {
  29. vars[String(node.id.name)] = node.init.value;
  30. }
  31. }
  32. if (node.type == 'CallExpression' && node.callee.name == 'require') {
  33. var p;
  34. if (node.arguments[0].type == 'Literal') {
  35. p = node.arguments[0].value;
  36. } else if (node.arguments[0].type == 'Identifier') {
  37. p = vars[node.arguments[0].name];
  38. }
  39.  
  40. console.log(p);
  41. if (p && require.resolve(p) != p) {
  42. // console.log(require.resolve(p).red);
  43. console.log(scope, p);
  44. req[p] = getRequires(require.resolve(p), scope+'-');
  45. }
  46. }
  47. }
  48. });
  49.  
  50. return req;
  51.  
  52. }
  53.  
  54. function resolve(pkg) {
  55. var s = plg.split('.');
  56. if (s[s.length-1] == 'js' ? true : (fs.exists(pkg) || fs.exists(pkg + ".js"))) {
  57.  
  58. }
  59. }
  60.  
  61. requires = getRequires(file);
  62. console.log(requires);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement