server-ready
Advanced tools
Comparing version 0.1.0 to 0.2.0
@@ -6,2 +6,3 @@ 'use strict'; | ||
}); | ||
exports['default'] = serverReady; | ||
var net = require('net'); | ||
@@ -11,3 +12,19 @@ var once = require('once'); | ||
exports['default'] = function (port, timeout, cb) { | ||
serverReady.timeout = 20 * 1000; // 20 seconds | ||
function serverReady(port) { | ||
var timeout = serverReady.timeout; | ||
var cb = undefined; | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
if (args.length > 1) { | ||
timeout = args[0]; | ||
cb = args[1]; | ||
} else { | ||
cb = args[0]; | ||
} | ||
cb = once(cb); | ||
@@ -41,4 +58,4 @@ | ||
connect(port, cb); | ||
}; | ||
} | ||
module.exports = exports['default']; |
{ | ||
"name": "server-ready", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "Know when a server is ready to receive requests", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -1,4 +0,4 @@ | ||
# server-ready | ||
# server-ready [![Build Status](https://travis-ci.org/typicode/server-ready.svg)](https://travis-ci.org/typicode/server-ready) [![npm version](https://badge.fury.io/js/server-ready.svg)](https://www.npmjs.com/package/server-ready) | ||
> Know when a server is ready to receive requests | ||
> Know when a server is ready to receive requests. Used in [hotel](https://github.com/typicode/hotel). | ||
@@ -11,3 +11,3 @@ ## Install | ||
## Usage | ||
## Example | ||
@@ -17,6 +17,5 @@ ```javascript | ||
var port = 3000 | ||
var timeout = 5000 | ||
// A server process is spawned here or somewhere else... | ||
serverReady(port, timeout, function (err) { | ||
serverReady(3000, function (err) { | ||
if (err) return console.error('timeout, can\'t connect to port') | ||
@@ -29,6 +28,16 @@ console.log('port is open or has just opened') | ||
`server-ready` will try to connect every 250ms to the specified port until a connection has been made or timeout has been reached. | ||
`server-ready` will try to connect every `250ms` to the specified `port` until a connection has been made or timeout has been reached (`20s` by default). | ||
## API | ||
__serverReady.timeout__ | ||
Default timeout. | ||
__serverReady(port, [timeout], cb)__ | ||
Tries to connect to `port`. | ||
## License | ||
MIT - [Typicode](https://github.com/typicode) |
let test = require('tape') | ||
let http = require('http') | ||
let index = require('../src') | ||
let serverReady = require('../src') | ||
test('index', (t) => { | ||
test('user timeout', (t) => { | ||
t.plan(2) | ||
@@ -11,4 +11,4 @@ | ||
index(port, 100, (err) => t.assert(err)) | ||
index(port, 1000, (err) => t.error(err)) | ||
serverReady(port, 100, (err) => t.assert(err)) | ||
serverReady(port, 1000, (err) => t.error(err)) | ||
@@ -18,1 +18,32 @@ setTimeout(() => server.listen(port), 500) | ||
}) | ||
test('default timeout', (t) => { | ||
t.plan(2) | ||
let someClosedPort = 45678 | ||
let defaultTimeout = 20 * 1000 | ||
let start = Date.now() | ||
serverReady(someClosedPort, (err) => { | ||
let end = Date.now() | ||
t.assert(err) | ||
t.ok(end - start > defaultTimeout) | ||
}) | ||
}) | ||
test('change default timeout', (t) => { | ||
t.plan(2) | ||
let someClosedPort = 45678 | ||
let timeout = 5 * 1000 | ||
let start = Date.now() | ||
serverReady.timeout = timeout | ||
serverReady(someClosedPort, (err) => { | ||
let end = Date.now() | ||
t.assert(err) | ||
t.ok(end - start > timeout) | ||
}) | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5014
77
41