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

just-wait

v1.0.11

Published

Wait for a file or directory to change then just return

Downloads

3,603

Readme

just-wait v1.0.11

version license installs

Waits for a file or directory to change or appear, then just returns. The watched file or directory does not have to exist yet.

Installation

To use just-wait from the command-line, install it globally:

npm install -g just-wait

To make sure your package is portable, also install it locally:

npm install --save-dev just-wait

Usage

# Use --help or -h to see usage details
$ just-wait --help
Usage: just-wait [options]

  Options:

    -h, --help                  output usage information
    -p, --pattern <pattern>     glob pattern. "," separates multiple patterns.
                                More info: https://github.com/isaacs/minimatch
    -d, --delay <milliseconds>  delay returning for a number of milliseconds
    -t, --timeout <seconds>     timeout waiting after a number of seconds (default=30)
    -s, --silent                suppress logging.

  Examples:

    # watch "lib" dir, return when something changes
    $ just-wait -p "lib/**"

    # watch "lib" and "src" dirs, return 500ms after something changes
    $ just-wait -p "lib/**,src/**" -d 500

    # watch "lib" dir, timeout after 10 seconds
    $ just-wait -p "lib/**,src/**" -t 10

In the case of a timeout, just-wait will return with exit code 1. In other cases it will return with exit code 0

From package.json

just-wait is usually used in the scripts section of package.json, to wait for some other, parallel task to create or change a file.

An example might be bundling your server code with the --watch flag. This makes webpack watch for changes... but it also means the command does not return so how do we actually start our server after the initial build has succeeded? Simple! We just wait for server.js to have been created!

{
  "scripts": {
	"build": "webpack -p",
	"build-dev": "webpack -d --watch",
    "start": "node server.js",
	"start-dev": "just-wait -p \"server.js\" && npm run start",
	"dev": "run-p --silent build-dev start-dev"
  }
}

Running npm run dev will run the build-dev and start-dev commands in parallel. The start-dev command then uses just-wait to wait for server.js to appear or change.

Logging

By default just-wait will log two messages to the terminal to provide feedback to the user:

$ just-wait -p README.md && echo Done!
Waiting for README.md (max 30 seconds)
Ready. README.md changed
Done!
$

or, in the case of timeout:

$ just-wait -p README.md --timeout 10 && echo Done!
Waiting for README.md (max 10 seconds)
Timed out waiting for README.md after 10 seconds.
$

It uses ulog for logging, which allows us to influence logging verbosity. The Waiting for.. line is logged at level INFO (which means it is visible at ulog's default log level of INFO), the success message is logged at WARN and the error message is logged at level ERROR. You can change the log level by setting the environment variable LOG, or you can completely suppress logging by passing the --silent (or -s) flag.

Credits

Based off of Rick Wong's wait-run, this simplified version just waits for the file or directory to appear/change and then returns. It does not execute any commands. Use it by chaining commands after it using &&, which works under *nix as well as Windows.

Credits also go to Fabian Eichenberger, who created watch-run, which was the basis for Rick's version.

Special thanks to Mark Reynolds for making all our lives easier with his contribution.

Copyright

License