Skip to content

erikengervall/fast-find-in-files

Repository files navigation

Fast Find in Files

⚡️ Supercharge keyword searches in file systems with blazing speed powered by C++.

Thanks to node-addon-api fast-find-in-files is able to provide a significantly faster search than other libraries. The library is built entirely in C++ and exposes its functionality using TypeScript.

fast-find-in-files logo



licence npm downloads licence

Example

import { fastFindInFiles } from 'fast-find-in-files'

const directory = process.cwd()
const needle = 'needle' // also supports string RegExp: 'needle*', and RegExp instances: new RegExp('needle*')

const result = fastFindInFiles({ directory, needle })

console.log(result)
// [
//   {
//     filePath: '<path>',
//     queryHits: [
//       {
//         line: 'It would appear there is a <needle> on this particular line',
//         lineNumber: 1,
//         link: '<path>:1:28',
//         offset: 28,
//       },
//     ],
//     totalHits: 1,
//   },
// ]

Development

Install dependencies

yarn install

Build

yarn build

Test

yarn test

Release

  1. Bump version in package.json & lerna.json (create PR -> merge)
  2. Create a new release on GitHub. This will also create a tag which will trigger the CI to publish a new version to npm

Node Addon API

A Native Addon is a binary compiled from C/C++.

Native Addons compile into a Dynamically Linked Library (DLL).

Contributing

If you'd like to contribute, start by searching through the issues and pull requests to see whether someone else has raised a similar idea or question.

If you don't see your idea listed, and you think it fits into the goals of this guide, do one of the following:

  • If your contribution is minor, such as a typo fix, open a pull request.
  • If your contribution is major, such as a new feature, start by opening an issue first. That way, other people can weigh in on the discussion before you do any work.

License

MIT