Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jalal246/find-in
Yet another tool, written in JS for Searching Text in Files!
https://github.com/jalal246/find-in
async callback chunk filesystem finder fs node-js promise regex search search-in-file search-in-text stream text text-processing
Last synced: 3 months ago
JSON representation
Yet another tool, written in JS for Searching Text in Files!
- Host: GitHub
- URL: https://github.com/jalal246/find-in
- Owner: jalal246
- License: mit
- Created: 2017-08-05T13:37:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-05T17:50:14.000Z (almost 2 years ago)
- Last Synced: 2024-09-19T19:25:05.774Z (4 months ago)
- Topics: async, callback, chunk, filesystem, finder, fs, node-js, promise, regex, search, search-in-file, search-in-text, stream, text, text-processing
- Language: JavaScript
- Homepage: https://jalal246.github.io/find-in/
- Size: 374 KB
- Stars: 11
- Watchers: 4
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# find-in
> Node text search in files
```bash
npm install find-in
```## How it works?
It creates read [stream](https://nodejs.org/api/stream.html) to read from the target file in chunks, matches the chunks using [match](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/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](https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions) 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 boundariesThe 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()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)### Examples
```js
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.
```js
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
```sh
yarn test
```### Related projects
- [textics](https://github.com/jalal246/textics-stream) &
[textics-stream](https://github.com/jalal246/textics) - counts lines, words, chars and spaces for a given string.- [replace-in](https://github.com/jalal246/replace-in) - Replace text in a given file.
- [packageSorter](https://github.com/jalal246/packageSorter) - Sorting packages
for monorepos production.- [builderz](https://github.com/jalal246/builderz) - Building your project with zero config.
- [corename](https://github.com/jalal246/corename) - Extracts package name.
- [move-position](https://github.com/jalal246/move-position) - Moves element in
given array form index-A to index-B.## License
This project is licensed under the [MIT License](https://github.com/jalal246/find-in/blob/master/LICENSE)