UNPKG

requisite

Version:

A cosmic javascript bundler.

151 lines (143 loc) 3.52 kB
// Generated by CoffeeScript 1.7.1 var clone, codegen, graph, parse, walk; clone = function(obj) { var inst, key; if ((obj == null) || typeof obj !== 'object') { return obj; } inst = new obj.constructor(); for (key in obj) { inst[key] = clone(obj[key]); } return inst; }; codegen = function(ast, options) { var minifier, minify, _ref; if (options == null) { options = {}; } if (!options.minify) { options = { comment: true, format: { indent: { style: ' ', base: 0 }, quotes: 'auto', escapeless: true, parentheses: false, compact: false, semicolons: false } }; return require('escodegen').generate(ast, options); } else { minifier = (_ref = options.minifier) != null ? _ref : 'uglify'; minify = require('./minify'); return minify[minifier](ast, options); } }; parse = function(source, options) { var ast, parser; if (options == null) { options = {}; } parser = require('esprima'); ast = parser.parse(source, { comment: true, range: true, raw: true, tokens: true }); return ast = require('escodegen').attachComments(ast, ast.comments, ast.tokens); }; walk = function(node, visitor) { var el, k, v, _i, _len, _results, _results1; if ((node != null) && typeof node === 'object') { if (!visitor(node)) { _results = []; for (k in node) { v = node[k]; _results.push(walk(v, visitor)); } return _results; } } else if (Array.isArray(node)) { _results1 = []; for (_i = 0, _len = node.length; _i < _len; _i++) { el = node[_i]; _results1.push(walk(el, visitor)); } return _results1; } }; graph = function(mod) { var depth, idx, line, lines, nextDepth, nextLine, seen, walkdeps, _i, _len, _ref, _ref1; seen = {}; walkdeps = function(mod, fn, depth) { var k, v, _ref, _results; if (depth == null) { depth = 0; } if (seen[mod.requireAs]) { fn(mod, depth, true); return; } seen[mod.requireAs] = true; depth += 1; _ref = mod.dependencies; _results = []; for (k in _ref) { v = _ref[k]; if ((fn(v, depth)) !== false) { _results.push(walkdeps(v, fn, depth)); } else { _results.push(void 0); } } return _results; }; console.log(mod.requireAs); lines = []; walkdeps(mod, function(mod, depth, seen) { var line; if (seen) { lines.pop(); return; } line = '├─' + mod.requireAs; if (depth > 0) { line = (new Array(depth * 2)).join(' ') + line; } return lines.push([line, depth]); }); for (idx = _i = 0, _len = lines.length; _i < _len; idx = ++_i) { _ref = lines[idx], line = _ref[0], depth = _ref[1]; if (lines[idx + 1] == null) { lines[idx][0] = line.replace('├─', '└─'); } else { _ref1 = lines[idx + 1], nextLine = _ref1[0], nextDepth = _ref1[1]; if ((nextLine != null) && depth !== nextDepth) { lines[idx][0] = line.replace('├─', '└─'); } } } return console.log(((function() { var _j, _len1, _results; _results = []; for (_j = 0, _len1 = lines.length; _j < _len1; _j++) { line = lines[_j]; _results.push(line[0]); } return _results; })()).join('\n')); }; module.exports = { clone: clone, codegen: codegen, graph: graph, parse: parse, walk: walk }; //# sourceMappingURL=utils.map