项目作者: erikengervall

项目描述 :
Node.js library written in C++ for text in file search
高级语言: JavaScript
项目地址: git://github.com/erikengervall/fast-find-in-files.git
创建时间: 2019-12-21T19:29:17Z
项目社区:https://github.com/erikengervall/fast-find-in-files

开源协议:MIT License

下载


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

  1. import { fastFindInFiles } from 'fast-find-in-files'
  2. const directory = process.cwd()
  3. const needle = 'needle' // also supports string RegExp: 'needle*', and RegExp instances: new RegExp('needle*')
  4. const result = fastFindInFiles({ directory, needle })
  5. console.log(result)
  6. // [
  7. // {
  8. // filePath: '<path>',
  9. // queryHits: [
  10. // {
  11. // line: 'It would appear there is a <needle> on this particular line',
  12. // lineNumber: 1,
  13. // link: '<path>:1:28',
  14. // offset: 28,
  15. // },
  16. // ],
  17. // totalHits: 1,
  18. // },
  19. // ]

Development

Install dependencies

  1. yarn install

Build

  1. yarn build

Test

  1. 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