Submit
Path:
~
/
/
usr
/
share
/
doc
/
node-readdirp
/
examples
/
File Content:
grep.js
'use strict'; const {createReadStream} = require('fs'); const es = require('event-stream'); const readdirp = require('..'); const findLinesMatching = (searchTerm) => { return es.through(function (entry) { let lineno = 0; const matchingLines = []; const fileStream = this; createReadStream(entry.fullPath, {encoding: 'utf-8'}) // handle file contents line by line .pipe(es.split('\n')) // filter, keep only the lines that matched the term .pipe(es.mapSync((line) => { lineno++; return ~line.indexOf(searchTerm) ? `${lineno}: ${line}` : undefined; })) // aggregate matching lines and delegate control back to the file stream .pipe(es.through( (data) => { matchingLines.push(data); }, () => { // drop files that had no matches if (matchingLines.length) { const result = { file: entry, lines: matchingLines }; fileStream.emit('data', result); // pass result on to file stream } this.emit('end'); })); }); }; // create a stream of all javascript files found in this and all sub directories // find all lines matching the term // for each file (if none found, that file is ignored) readdirp(__dirname, {fileFilter: '*.js'}) .pipe(findLinesMatching('arguments')) .pipe(es.mapSync((res) => { // format the results and output return `\n\n${res.file.path}\n\t${res.lines.join('\n\t')}`; })) .pipe(process.stdout);
Submit
FILE
FOLDER
Name
Size
Permission
Action
bench.js
731 bytes
0644
grep.js
1490 bytes
0644
list.js
733 bytes
0644
types.ts
578 bytes
0644
N4ST4R_ID | Naxtarrr