UNPKG

escomplex-coffee

Version:

Software complexity analysis for CoffeeScript projects. CoffeeScript-specific wrapper around escomplex.

57 lines (49 loc) 1.24 kB
// Generated by CoffeeScript 1.9.0 (function() { 'use strict'; var analyse, coffee, escomplex, getAst, walker; coffee = require('coffee-script'); escomplex = require('escomplex'); walker = require('./walker'); analyse = function(source, options) { options || (options = {}); if (Array.isArray(source)) { return escomplex.analyse(source.map(function(s) { return { ast: getAst(s.code, options.ignoreErrors), path: s.path }; }).filter(function(s) { return !!s.ast; }), walker, options); } return escomplex.analyse(getAst(source, options.ignoreErrors), walker, options); }; exports.analyse = analyse; getAst = function(source, ignoreErrors) { var ast, e, lastExp; if (source.length === 0) { return; } ast = null; try { ast = coffee.nodes(source); } catch (_error) { e = _error; if (ignoreErrors) { return; } throw e; } lastExp = ast.expressions[ast.expressions.length - 1]; ast.loc = { start: { line: ast.locationData.first_line }, end: { line: lastExp.locationData.last_line } }; return ast; }; }).call(this);