Sha256: e1cb9c62d559396d035654080cf08912c7fffa9310e97be0c4201fca54e606f1
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
var burrito = require('burrito'); var exports = module.exports = function (src, opts) { return exports.find(src, opts).strings; }; exports.find = function (src, opts) { if (!opts) opts = {}; var word = opts.word === undefined ? 'require' : opts.word; var modules = { strings : [], expressions : [] }; if (src.toString().indexOf(word) == -1) return modules; burrito(src, function (node) { var isRequire = node.name === 'call' && node.value[0][0] === 'name' && node.value[0][1] === word ; if (isRequire) { var expr = node.value[1][0]; if (expr[0].name === 'string') { modules.strings.push(expr[1]); } else { modules.expressions.push(burrito.deparse(expr)); } } var isDotRequire = (node.name === 'dot' || node.name === 'call') && node.value[0][0] === 'call' && node.value[0][1][0] === 'name' && node.value[0][1][1] === word ; if (isDotRequire) { var expr = node.value[0][2][0]; if (expr[0].name === 'string') { modules.strings.push(expr[1]); } else { modules.expressions.push(burrito.deparse(expr)); } } var isDotCallRequire = node.name === 'call' && node.value[0][0] === 'dot' && node.value[0][1][0] === 'call' && node.value[0][1][1][0] === 'name' && node.value[0][1][1][1] === word ; if (isDotCallRequire) { var expr = node.value[0][1][2][0]; if (expr[0].name === 'string') { modules.strings.push(expr[1]); } else { modules.expressions.push(burrito.deparse(expr)); } } }); return modules; };
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
holmes-0.0.1 | lib/holmes/node_modules/detective/index.js |