npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

search-act-replace

v0.1.0

Published

Search through file system and replace after callback.

Downloads

9

Readme

Search-Act-Replace (SAR)

Install with npm install search-act-replace.

This modules takes a root path, a regex and a callback. It will recursively search the file within the root path and call the callback for each match. It also provides another callback, which you can feed with the text that the match should be replaced with (or false for no replacement).

Let the example talk for itself.

Example

var sar = require('search-act-replace');

sar('./test', /www\.\w+\.com/g, function (match, file, replace) {
  http.get('http://' + match[0], function (res) {
    if (res.statusCode !== 200) {
      replace(match[0] + ' (link broken)');
    } else {
      replace(false);
    }
  });
});

The script will automatically ignore .git, .svn, node_modules, and bower_components folders (have a look at the .sarignore file) as well as files specified in the roots .gitignore file as well as a custom .sarignore file in the root folder.

Events

SAR is an Event Emitter. It supports the following events:

file

Emitted whenever sar stumbles across a file.

.on('file', function (file) {
  // file is the filename
})

directory

Emitted whenever sar stumbles across a directory.

.on('directory', function (dir) {
  // dir is the filename
})

ignore

Whenever SAR ignores to match within a file or ignores a directory.

.on('ignore', function (file) {
  // file is the filename or foldername
})

end

When everything is done. Meaning that all files are traversed, all callbacks finished and all the writing/replacing has been done.

.on('end', function () {
  // file is the filename
})