Sha256: 9a4ff939b7b9ae4d617737c203f8608a829afda3e4781688c63bbc172b31c8a2

Contents?: true

Size: 1.39 KB

Versions: 11

Compression:

Stored size: 1.39 KB

Contents

var assert = require("assert");
var path = require("path");
var Q = require("q");
var fs = require("graceful-fs");
var util = require("./util");
var readdir = Q.denodeify(fs.readdir);
var lstat = Q.denodeify(fs.lstat);

function processDirP(pattern, dir) {
    return readdir(dir).then(function(files) {
        return Q.all(files.map(function(file) {
            file = path.join(dir, file);
            return lstat(file).then(function(stat) {
                return stat.isDirectory()
                    ? processDirP(pattern, file)
                    : processFileP(pattern, file);
            });
        })).then(function(results) {
            return util.flatten(results);
        });
    });
}

function processFileP(pattern, file) {
    return util.readFileP(file).then(function(contents) {
        var result = new RegExp(pattern, 'g').exec(contents);
        return result ? [{
            path: file,
            match: result[0]
        }] : [];
    });
}

module.exports = function(pattern, sourceDir) {
    assert.strictEqual(typeof pattern, "string");

    return processDirP(pattern, sourceDir).then(function(results) {
        var pathToMatch = {};

        results.forEach(function(result) {
            pathToMatch[path.relative(
                sourceDir,
                result.path
            ).split("\\").join("/")] = result.match;
        });
        
        return pathToMatch;
    });
};

Version data entries

11 entries across 11 versions & 4 rubygems

Version Path
ilog-0.4.1 node_modules/commoner/lib/grep.js
ilog-0.4.0 node_modules/commoner/lib/grep.js
ilog-0.3.3 node_modules/commoner/lib/grep.js
xcodebuild-helper-1.2.5 externals/ios-sim-master/node_modules/commoner/lib/grep.js
xcodebuild-helper-1.2.3 externals/ios-sim-master/node_modules/commoner/lib/grep.js
es6_tilt-0.1.2 test/dummy/app/assets/javascripts/node_modules/commoner/lib/grep.js
es6_tilt-0.1.1 test/dummy/app/assets/javascripts/node_modules/commoner/lib/grep.js
es6_tilt-0.1.0 test/dummy/app/assets/javascripts/node_modules/commoner/lib/grep.js
gulp_assets-1.0.0.pre.5 template/node_modules/babel-core/node_modules/regenerator/node_modules/commoner/lib/grep.js
gulp_assets-1.0.0.pre.4 template/node_modules/babel-core/node_modules/regenerator/node_modules/commoner/lib/grep.js
gulp_assets-1.0.0.pre.3 template/node_modules/babel-core/node_modules/regenerator/node_modules/commoner/lib/grep.js