0.7.0 • Published 7 years ago

prone v0.7.0

Weekly downloads
47
License
MIT
Repository
github
Last release
7 years ago

Prone

Wait for services to come available then exit with code 0. This tool is similar to the wait-for-it.sh and dockerize wait tools except entirely built in Node. This allows us to define a healthy script in our package.json to postpone the startup of our system until our services are ready for connection.

Example:

$ prone tcp://redis:6379 tcp://localhost:8080 \
    && echo "Services up" \
    || echo "Timed out"

Example in our package.json:

{
    ...,
    "scripts": {
        "healthy": "prone tcp://redis:6379 tcp://mysql:3307",
        "start": "node src/index.js",
        "up": "npm run healthy && npm start"
    },
    ...
}

CLI

  Usage: prone <target ...>

  Options:

    -h, --help                     output usage information
    -V, --version                  output the version number
    -t, --timeout <timeout>        timeout after ms (default: 30000ms)
    -m, --max-attempts <attempts>  maximum amount of attempts before failing
    --delay <delay>                the delay between healthchecks (default: 1000ms)
    -d, --debug                    output debug logs

  Examples:

    $ prone tcp://google.com:80 -- echo "Google is up!"
    $ prone redis rabbitmq && echo 'Hosts are up'

Available targets:

NameHealtchecknpm DependencyFormatDefaultExample
tcpConsiders service healthy if a TCP connection is made to the targetnonetcp://host:portnonetcp://google.com:80
amqpUse amqplib.connect to establish a connection to an AMQP brokeramqplibamqp://username:password@host:port/vhost?querynoneamqp://rabbitmq:5672
rabbitmqExtends amqp to connection to RabbitMQamqplibrabbitmq[://username:password@host:port]rabbitmq://localhost:5672rabbitmq
redisConnects to a Redis service with redis.createClientredisredis[://username:password@host:port/vhost?query]redis://localhost:6389redis
mysqlConnects to a MySQL service with mysql.createConnectionmysqlmysql://username:password@host:port/databasenonemysql://root:root@localhost:3306/mysqlmysql
elasticsearchConnects to Elasticsearchelasticsearchelasticsearch://host:portelasticsearch://localhost:9200elasticsearch

Note: The npm Dependency with npm install is required to be installed for the healthcheck to work.

API

check( input: string|object )

Check if a service is healthy. If it is, resolve the promise otherwise reject with timeout error or max attempts reached.

0.7.0

7 years ago

0.6.0

7 years ago

0.5.0

7 years ago

0.4.0

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.7

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago