UNPKG

elastic.js

Version:

Javascript API for ElasticSearch DSL

69 lines (55 loc) 1.49 kB
/** @module jsdoc/src/scanner @requires module:common/fs @author Michael Mathews <micmath@gmail.com> @license Apache License 2.0 - See file 'LICENSE.md' in this project. */ (function() { var common = { mixin: require('common/util').mixin, events: require('common/events') }; var fs = require('fs'); /** @constructor @mixes module:common.events */ exports.Scanner = function() { } common.mixin(exports.Scanner.prototype, common.events); /** Recursively searches the given searchPaths for js files. @param {Array.<string>} searchPaths @param {number} [depth=1] @fires sourceFileFound */ exports.Scanner.prototype.scan = function(searchPaths, depth, includeMatch, excludeMatch) { var filePaths = [], that = this; searchPaths = searchPaths || []; depth = depth || 1; searchPaths.forEach(function($) { if ( fs.stat($).isFile() ) { filePaths.push($); } else { filePaths = filePaths.concat(fs.ls($, depth)); } }); filePaths = filePaths.filter(function($) { if (includeMatch && !includeMatch.test($)) { return false } if (excludeMatch && excludeMatch.test($)) { return false } return true; }); filePaths = filePaths.filter(function($) { var e = { fileName: $ }; that.fire('sourceFileFound', e); return !e.defaultPrevented; }); return filePaths; } })();