/// var _:any = require('lodash'); module.exports = function (lines:Array, dependencyDef:any, defaultSelector:string):number { var dependency:any = dependencyDef.dependency; var selector:string = defaultSelector; var result:number; if (_.endsWith(dependencyDef.ref, 'js')) { selector = dependency.injectionLineSelectorJS ? ( dependency.injectionLineSelectorJS.value || dependency.injectionLineSelectorJS ) : selector; } else if (_.endsWith(dependencyDef.ref, 'css')) { selector = dependency.injectionLineSelectorCSS ? ( dependency.injectionLineSelectorCSS.value || dependency.injectionLineSelectorCSS ) : selector; } else if (dependency && dependency.dependencies) { selector = dependency.dependencies; } result = _.indexOf(lines, _.find(lines, function (line) { // TODO Should be refactored to support arrays by traversing all lines looking for the dependency with the highest line number return line.indexOf(selector) > -1; })); var offset:number = _.get(dependency, 'injectionLineSelectorJS.offset') || 0; result += offset; return result; };