Readyator
Waits for specified
urls
or ports
on localhost to be ready before running a supplied command.Installation
npm
npm install readyator
Yarn
yarn add readyator
Usage
Preface
- Addresses (
ports
orurls
) must be separated by comma if you want to check for multiple services to be ready ( returning a successful HTTP status code). - Your
command
must be surrounded by quotes so that it can be properly parsed. - The default check interval is 1s (1000ms) but can be changed.
Wait for ports
Command:readyator [ports] [command]
Example:
readyator 8080,8081 "npm run start"
Wait for URLs
Command:readyator [urls] [command]
Example:
readyator https://www.google.com/,http://localhost:8081/ "npm run start"
Change check interval
Command:readyator [urls] [command] [interval_in_millis]
Example:
readyator https://www.google.com/ "npm run start" 5000
Wait for healthy Docker container
Command:readyator-docker [container_name] [interval_in_millis]
Example:
readyator-docker my_docker_container 1000
Node.js API
You can usereadyator
also through its Node.js API:import readyator from 'readyator';
await readyator([8080, 8081], 'npm run start');
It also supports executing a callback function:
import readyator from 'readyator';
const callback = () => {
console.log('System is online!');
};
readyator([8080, 8081], callback);
Readyator's programmatic interface can also be used to listen for Docker containers to become healthy:
import {runWhenHealthy} from 'readyator';
await runWhenHealthy('my_docker_container');
Development
Here is how you can easily test thereadyator
from your development environment when checking out the code:npm start https://www.google.com/ "npm run exit"