¡Duerme!
Polls REST API routes until they match the required status or timeout.
Installation
$ npm i -g duerme
Usage
$ duerme --help Usage: duerme [options] Options: -f, --connect-frequency <milliseconds> Retry frequency -m, --method <method> HTTP method -p, --payload <payload> JSON Payload -q, --quiet Silence non-error output -r, --regex <regex> Payload validation regex -s, --status <status> Success status code -t, --connect-timeout <milliseconds> Individual connection attempt timeout -T, --total-timeout <milliseconds> Total timeout across all connect attempts -u, --url <url> URL -v, --verbose make output more verbose -h, --help output usage information
Examples
Polling http://httpbin.org/status/200✅ Attempt 1 succeeded. Time elapsed: 186.583 ms
$ duerme -t 250 -f 500 -T 2000 -u http://maybe.soPolling http://maybe.so⚠️ Attempt 1 failed : Error: getaddrinfo ENOTFOUND maybe.so maybe.so:80remaining=485.919855 cap=1985.649866⚠️ Attempt 2 failed : Error: getaddrinfo ENOTFOUND maybe.so maybe.so:80remaining=496.825892 cap=1492.672962⚠️ Attempt 3 failed : Error: getaddrinfo ENOTFOUND maybe.so maybe.so:80remaining=497.582397 cap=993.667252⚠️ Attempt 4 failed : Error: getaddrinfo ENOTFOUND maybe.so maybe.so:80remaining=497.75541 cap=489.29356499999994⚠️ Attempt 5 failed : Error: getaddrinfo ENOTFOUND maybe.so maybe.so:80❌ All 5 attempts failed over 2.002 s
$ duerme -v -s 301 -t 500 -T 2000 -u http://httpbin.org/status/404Config: method : GET url : http://httpbin.org/status/404 payload : {} status : 301 regex : -- connect frequency : 1.000 s connect timeout : 500.000 ms total timeout : 2.000 s quiet : false verbose : truePolling http://httpbin.org/status/404⚠️ Attempt 1 failed with status 404 ⚠️ Attempt 2 failed with status 404 ⚠️ Attempt 3 failed with status 404 ❌ All 3 attempts failed over 2.159 s