Skip to content

jalal246/find-in

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

find-in

Node text search in files

npm install find-in

How it works?

It creates read stream to read from the target file in chunks, matches the chunks using match method and returns an array of objects contains the final results.

API

find(options)

options object contains:

  • path: string file path,
  • request: array array of regex that will be matched in file
  • encoding:? string read stream encoding (default: utf8)
  • join: string number of chunk combined (default: 2), increasing the number will widen the matching chunk boundaries

The results is promise contains report: array An array of objects. Each element contains three keys:

  • isFound: Boolean search result
  • reg: string regex sent in request
  • match: array matching result. An array if there are results otherwise returns null. for more see String.prototype.match()

Examples

const find = require("find-in");

// let's create some request to search for it in our file.
const req = [/old/g, /new/g];

const report = await find({ path: "/path/to/fileName", request: req });

// > report:
//
// [
//   {
//     isFound: true,
//     reg: /old/g,
//     match: ["old"], // the result of matching
//   },
//   {
//     isFound: false, // not found so it wasn't changed
//     reg: /new/g,
//     match: null,
//   },
// ];

Or you can check a specific result as following.

const report = await find({
  path: "/path/to/fileName",
  request: [phrase0, phrase1, phrase2, phrase3],
});

if (report[2].isFound) {
  console.log("found phrase2!");
  // do something
} else {
  console.log("phrase2 is not found!");
  // do something else
}

Tests

yarn test

Related projects

License

This project is licensed under the MIT License